class A{
public:
class A() : var1(0)
{}
virtual ~A(){};
virtual void DoMagic() = 0;
protected:
int var1;
};
我在使用-O优化gcc时遇到了一些问题。然后程序在没有优化的情况下运行良好,但无论级别如何,随机构建都会崩溃。
我有几个带有受保护成员变量的摘要类,如上所示。派生类主动使用此变量。这可能是相关的吗?
我听说Scott Meyers建议反对这种做法,但我找不到参考文本。
这可能是问题的原因吗? 这是有效的c ++吗?
谢谢。
答案 0 :(得分:1)
我相信你的问题可能就在其他地方。
变化:
void DoMagic() = 0;
为:
virtual void DoMagic() = 0;
还要确保您拥有虚拟析构函数。
virtual ~A( ) { }
派生时,请确保在使用之前从派生构造函数初始化var1。
B::B( ) : var1( 0 ) { }
至于设计,我不知道上下文,在某些情况下它没关系,但我试着避免它。