我收到错误:
预期的 ';' 在 '(' 标记之前。
为什么会这样?我该如何解决?
#include <iostream>
class AB {
int n;
AB(int x) { n = x;}
};
class ED {
AB blee(1);
};
这很可能被解析错误并失败:
AB blee(1);
如果您尝试初始化 type 的数据成员AB
,则不能那样做。在 C++11 中,您可以这样做:
AB blee{1};
或者
AB blee = 1;
或者,您可以在ED
的构造函数中执行此操作。这适用于 C++11 和 C++03。
class ED {
ED() : blee(1) {}
AB blee;
};
您必须由构造函数通过member-initialization进行实例化:
class ED {
ED() : blee(1) {}
AB blee;
};
你想用你的 做AB blee(1);
什么?它既不是函数声明也不是函数调用。
要调用一个函数,你可以把它放在 的某个成员的主体中ED
,然后去掉AB
,只剩下blee(1);
。
要声明一个函数,您需要int
在括号内放置一个类型(例如,):AB blee(int);