头文件:
class SourceManager{
typedef struct {
const char *name;
int size ;
const char *src;
}imgSources;
public:
imgSources * img;
SourceManager();
};
在cpp文件中:
SourceManager::SourceManager(){
img ={
{ "cc",
4,
"aa"
}
};
}
它显示错误:
-无法使用类型为'const char [3]'的左值来初始化类型'imgSources *'的值
-标量初始化程序周围的括号过多
如何解决?
最佳答案
数据成员img
被声明为具有指针类型
imgSources * img;
所以在构造函数中,您需要类似
SourceManager::SourceManager()
{
img = new imgSources { "cc", 4, "aa" };
//...
}
如果您需要分配结构的数组,则构造函数可以如下所示
SourceManager::SourceManager()
{
img = new imgSources[5] { { "cc", 4, "aa" }, /* other initializers */ };
//...
}
关于c++ - 在头文件C++中声明数组结构时出错,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31559404/