【发布时间】:2014-05-11 08:44:03
【问题描述】:
我创建了一个带有构造函数的类,该构造函数采用 int 来确定对象所具有的链表的大小。我遇到的问题是,当这个对象被实例化为另一个类的私有成员时,我需要能够调用这个构造函数。所以基本上:
class A {
public:
A();
A(int size);
};
class B {
const int size = // any number > 0
private:
A a(size);
};
我得到这个错误:
constant "B::size" 不是类型名称
我已尝试在线搜索,但无法遇到此特定问题。可能是我在努力正确地表达这个问题......这是一个我还没有看到的奇怪问题。任何帮助表示赞赏!
【问题讨论】:
-
你已经声明了方法,但是你还没有实现它们。实施在哪里?
-
这是一个错误的设计。我建议您询问您要解决的实际问题,而不是您想到的解决方案。
-
A的构造函数应该在B的构造函数中调用。除非使用常量,否则不能直接在头文件中实例化。
-
你的
A a(size);声明有误,应该是A a;并在类B的构造函数成员初始化列表中初始化a成员。 -
感谢甜甜圈和πάντα ῥεῖ!
标签: c++ class constructor