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

Error when declare array struct in header file c++

头文件:

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 */ };
    //...
}