gpt4 book ai didi

c++ - 关于 C++ 中 sizeof(class) 用法抛出的错误

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:08:16 26 4
gpt4 key购买 nike

当我用 C++ 编译我的项目时,MSVC 抛出以下错误:

error #94: the size of an array must be greater than zero

执行 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 返回零大小,为什么会出现编译错误?

最佳答案

此错误是在您采用此时仅声明 的类的sizeof 时引起的。例如。 类MyClass; const size_t error = sizeof(MyClass);.

请注意,稍后是否完全定义该类并不重要:定义必须在 sizeof 之前。

关于c++ - 关于 C++ 中 sizeof(class) 用法抛出的错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6569619/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com