我有一个类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 :: second()'
的匹配函数
任何帮助我做错了什么?因为当我在第二个类中调用树的构造函数时,我做了同样的事情,并且工作正常。
答案 0 :(得分:1)
首先,按照您定义类的顺序,类session.beginTransaction();
session.save(user);
session.getTransaction().commit();
在second
中使用时尚不可知。您应该实际获得其他错误消息。
其次,在初始化列表中,您需要通过其名称(即first
)来处理变量以进行初始化,而不是通过其类型: secondAvl(-1)
进行初始化。
请参阅以下工作示例:
: second(-1)
答案 1 :(得分:-1)
改为:
...
private:
second secondAvl;
public:
first() : secondAvl(-1)
{ }
}
或使用{}
进行统一初始化...
private:
second secondAvl;
public:
first() : secondAvl{-1}
{ }
}