我正在试图弄清楚为什么在初始化struct成员变量期间我为此演员程序收到编译错误(在此消息的标题中)。
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文件中定义的,并且在它不起作用的情况下,结构是类标头的成员。你知道为什么这是一个问题,或者我可以做些什么来修复它?
感谢。
答案 0 :(得分:1)
您可能会错过static instantiate()
的返回类型
static void instantiate()