我创建了一个带有构造函数的类,该构造函数接受一个int来确定对象所具有的链表的大小。我遇到的问题是当这个对象被实例化为另一个类的私有成员时,我需要能够调用此构造函数。所以基本上:
class A {
public:
A();
A(int size);
};
class B {
const int size = // any number > 0
private:
A a(size);
};
我收到此错误:
常量“B :: size”不是类型名称
我尝试过在线搜索,但我无法遇到这个具体问题。可能是我正在努力正确地说出这个问题......这是一个我还没有看到的奇怪问题。任何帮助表示赞赏!
答案 0 :(得分:3)
您无法使用成员变量声明中的参数调用构造函数。
您可以为B实现构造函数并在那里执行。
B::B() : a(size) {}
答案 1 :(得分:2)
您必须使用initializer list
在B
构造函数中执行此操作
class B
{
public:
B() : a(size)
{}
private:
A a;
const int size = ...;
};