标题文件:
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 *'类型的值 - 标量初始化器周围有许多支撑
如何解决?
答案 0 :(得分:0)
数据成员img
被声明为具有指针类型
imgSources * img;
所以在构造函数中你需要像
这样的东西SourceManager::SourceManager()
{
img = new imgSources { "cc", 4, "aa" };
//...
}
如果需要分配结构数组,那么构造函数可能看起来像
SourceManager::SourceManager()
{
img = new imgSources[5] { { "cc", 4, "aa" }, /* other initializers */ };
//...
}