當我編譯我的項目在C++中,下面的誤差由MSVC拋出:關於錯誤
錯誤#94:陣列的大小必須大於零
該錯誤是在下面的行拋出做的sizeof:
if (sizeof (MyNamespace::MyClass) == 60)
MyClass的被這樣定義:
class MyClass: public ParentClass
{
public:
MyClass(void *pCreate, int a, int b, bool c) :
ParentClass(pCreate, a, b, c) {}
virtual inline void myFunc ()
{
//something
}
private:
virtual ~MyClass(){};
/**
* Copy assignment. Intentionally made private and not implemented to prohibit usage (noncopyable stereotype)
*/
MyClass& operator=(const MyClass&);
};
有誰能告訴我什麼可能是錯的?即使sizeof返回零大小,爲什麼它是一個編譯器錯誤?
在ParentClass中是否有一個數組? –
每個類的大小必須至少爲字節,即使它是空的,以便將它的2個成員(例如在數組中的0)分開(如果它在0處,它們將得到相同的地址)。這個錯誤是否出現在這條線上? – Nobody