我收到了错误:
预期';'在'''令牌之前。
为什么会这样?我该如何解决?
#include <iostream>
class AB {
int n;
AB(int x) { n = x;}
};
class ED {
AB blee(1);
};
答案 0 :(得分:3)
这很可能被解析错误并且失败了:
AB blee(1);
如果您尝试初始化AB
类型的数据成员,则不能这样做。在C ++ 11中,您可以这样做:
AB blee{1};
或
AB blee = 1;
或者,您可以在ED
的构造函数中执行此操作。这适用于C ++ 11和C ++ 03。
class ED {
ED() : blee(1) {}
AB blee;
};
答案 1 :(得分:3)
您必须通过构造函数通过 member-initialization 实例化:
class ED {
ED() : blee(1) {}
AB blee;
};
答案 2 :(得分:1)
你想用AB blee(1);
做什么?它既不是函数声明也不是函数调用。
要调用某个函数,您需要将其放在ED
的某个成员的正文中,然后不要AB
,只留下blee(1);
。
要声明一个函数,您需要在parens中添加一个类型(例如int
):AB blee(int);