在另一个类中使用对象的构造函数

时间:2014-05-11 08:44:04

标签: c++ class constructor

我创建了一个带有构造函数的类,该构造函数接受一个int来确定对象所具有的链表的大小。我遇到的问题是当这个对象被实例化为另一个类的私有成员时,我需要能够调用此构造函数。所以基本上:

class A {
public:
    A();
    A(int size);
};

class B {
    const int size = // any number > 0
private:
    A a(size);
};

我收到此错误:

  

常量“B :: size”不是类型名称

我尝试过在线搜索,但我无法遇到这个具体问题。可能是我正在努力正确地说出这个问题......这是一个我还没有看到的奇怪问题。任何帮助表示赞赏!

2 个答案:

答案 0 :(得分:3)

您无法使用成员变量声明中的参数调用构造函数。

您可以为B实现构造函数并在那里执行。

B::B() : a(size) {}

答案 1 :(得分:2)

您必须使用initializer list

B构造函数中执行此操作
class B
{
public:
    B() : a(size)
    {}

private:
    A a;
    const int size = ...;
};