1
class A{
public:
class A() : var1(0)
{}
virtual ~A(){};
virtual void DoMagic() = 0;
protected:
int var1;
};
나는 -O 최적화에 몇 가지 문제가 있습니다. gcc. 그런 다음 최적화없이 프로그램이 잘 실행되지만 수준에 관계없이 무작위로 충돌합니다.추상 클래스의 보호 된 멤버 변수는 무엇입니까?
나는 위에서 보인 것처럼 보호 된 멤버 변수를 가진 몇 개의 abstract 클래스를 가지고있다. 이 변수는 파생 된 클래스에서 활발하게 사용됩니다. 이것이 관련 될 수 있습니까?
Scott Meyers가이 관행에 대해 조언하고 있다고 들었지만 참조 텍스트를 찾을 수 없습니다.
문제의 원인 일 수 있습니까? 유효한 C++입니까?
감사합니다.
최상의 디자인이 아닐 수도 있지만 이는 유효한 C++이며 사용자가 설명하는 종류의 문제를 유발할 수는 없습니다. 당신의 문제는 다른 곳에 있습니다. –
생성자에서 var1을 초기화 했습니까? 코드가 유효하지 않습니다. DoMagic은 가상이 아닙니다. – billz
예, class1의 초기화 목록에서 var1을 초기화합니다. – nahpr