如何在另一个类中调用一个类的构造函数?
How to call a constructor for a class inside another class?
我有一个类first
,其中我想有另一个元素,它的类型是另一个类。 像这样:
class first{
private:
second secondAvl;
public:
first():second(-1){} // i get erroe here
}
class second: public Tree{
private:
public:
second(int key) :Tree(NULL,key1){} // here it worked to call contructor for tree
}
我的问题是,当我尝试在类第一个构造函数中调用第二个构造函数时,出现此错误:
调用"秒::秒()"没有匹配函数
有什么帮助我做错了什么吗?因为我在第二堂课中调用树的构造函数时也做了同样的事情,而且效果很好。
首先,按照您定义类的顺序,类second
在first
中使用时是未知的。您实际上应该收到其他错误消息。 其次,在初始值设定项列表中,您需要通过其名称(即: secondAvl(-1)
),而不是按其类型: second(-1)
。
请参阅以下工作示例:
class second {
private:
public:
second(int key) {} // here it worked to call contructor for tree
};
class first{
private:
second secondAvl;
public:
first():secondAvl(-1){} // i get erroe here
};
改为:
...
private:
second secondAvl;
public:
first() : secondAvl(-1)
{ }
}
或使用 {} 进行统一初始化
...
private:
second secondAvl;
public:
first() : secondAvl{-1}
{ }
}
相关文章:
- 如何使用 swig 修改类构造函数以保留对其中一个构造函数参数的引用?
- 为什么从另一个构造函数内部调用C++构造函数不修改类变量?
- 如何处理没有默认构造函数但在另一个构造函数中构造的对象?
- 我用字符串做了一个C++构造函数,但它不会打印出字符串
- 有一个构造函数,但有两个析构函数
- C++ 如何根据作为输入传递的参数调用一个构造函数或另一个构造函数?
- C 如何仅实现多个继承类的一个构造函数
- 错误:在“(”标记之前进行预期的构造函数、析构函数或类型转换.即使我有一个构造函数
- 让构造函数在其初始化列表中调用同一类的另一个构造函数是否有效
- 创建一个构造函数,即Capabe获取任何数量的参数
- 我如何在类上需要另一个构造函数的对象中声明一个对象
- 使用委托调用构造函数和在另一个构造函数体中调用的区别
- 为什么当我尝试编译时,我的 c++ 代码不断返回对我的一个构造函数的"未定义的引用"?
- C :另一个构造函数的构造函数的隐式调用
- 如何创建一个构造函数,该构造函数吸收char阵列
- 为什么有一个构造函数同时接受initializer_list和一个参数包
- 我有一个构造函数,但我需要将输出返回到 main.cpp.我无法使用获取字符串功能!!任何想法如何实现这一目标?
- 如何在一个构造函数中使用两个可变参数模板参数来绑定两个函数
- 从同一类的另一个构造函数调用构造函数
- 将类的实例传递给另一个构造函数,该构造函数将其对象添加到所传递实例所拥有的列表中