【发布时间】:2012-10-01 07:29:03
【问题描述】:
- 我有两个班级,A 和 B
- B 类有一个私有成员变量,它是一个动态常量 对象 A 的大小数组
- B 类的构造函数之一将采用常量引用 一个 A 类对象,用于设置 B 类中的数组
B 类:
class B
{
private:
const A** theArray;
public:
B(const A&);
};
B::B(const A& newA)
: theArray(newA) //<-- ??
{
}
当我尝试编译程序时,我收到一条错误消息“无法从 'const A' 转换为 'const A **'”
我如何将一个对象传递到成员初始化器列表中,以便我可以从中创建一个数组?
编辑 1: 这是一个 comsci 课程作业。我们现在正在学习类,分配让我们为这个特定的类创建三个单独的构造函数(一个复制构造函数;一个用于将新的 A 对象添加到 B 类的“theArray”中;以及一个添加第一个 A 对象的构造函数进入'theArray'(这是有问题的构造函数)。)
这个想法是你调用列表中的第三个构造函数来创建一个对象。然后,如果您想将另一个 A 对象添加到数组中,您将调用第二个构造函数。然后,如果您想要对象的副本,您将使用复制构造函数。
【问题讨论】:
-
您想将单个对象的引用设置为数组?您不能从单个对象中创建一个数组。如果你不想引用对象,你需要传递一个指向数组的指针。
标签: c++ class constructor constants