我有一个用大量 vanillachar*
指针定义的结构,但也是一个对象成员。当我尝试静态初始化这样的结构时,出现编译器错误。
typedef struct
{
const char* pszA;
// ... snip ...
const char* pszZ;
SomeObject obj;
} example_struct;
// I only want to assign the first few members, the rest should be default
example_struct ex = { "a", "b" };
SomeObject
有一个没有参数的公共默认构造函数,所以我不认为这会是一个问题。但是当我尝试编译它(使用 VS)时,我收到以下错误:
error C2248: 'SomeObject::SomeObject' : cannot access private member declared in class 'SomeObject'
知道为什么吗?
更新:这是 SomeObject 的定义
class SomeObject
{
void operator=(const SomeObject&);
SomeObject(const SomeObject&);
public:
SomeObject()
{
// etc
}
// members snipped
}