类错误,预期;之前(令牌

时间:2013-02-18 23:23:13

标签: c++ class nested

我收到了错误:

  

预期';'在'''令牌之前。

为什么会这样?我该如何解决?

#include <iostream>

class AB {
int n;
AB(int x) { n = x;}
};


class ED {

AB blee(1);
};

3 个答案:

答案 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);