错误:')'令牌强制转换问题之前期望的主表达式



我想弄清楚为什么我得到一个编译错误(在这个消息的标题)在这个结构体成员变量的初始化期间。

在myclass.h

class MyClass {
    ...
    public:
        struct cpresets {
            char* soundfont_key;
            char* exists;
            UT_hash_handle hh;
        };
    ...
};
在myclass.cc

void myclass::mymethod() {
    ...
    struct cpresets *newpreset;
    newpreset = (cpresets*) malloc(sizeof( cpresets));
    ...
}

在cc文件中还有一个地方可以使用

在myclass.cc

...
typedef struct {
    ...
}mystruct;
...
static instantiate(){
    ...
    //this line causes the compile error
    mystruct* me = (mystruct*) malloc(sizeof(mystruct));
    ...
}

我看到在它工作的情况下的不同之处在于,结构体是在cc文件中定义的,在它不起作用的情况下,结构体是类头的成员变量。你知道为什么这是一个问题,或者我可以做些什么来解决它吗?

谢谢。

您错过了static instantiate()的返回类型,可能应该是static void instantiate()

相关内容

  • 没有找到相关文章

最新更新