gpt4 book ai didi

c++ - 在头文件c++中声明数组结构时出错

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:49:34 27 4
gpt4 key购买 nike

头文件:

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/

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