继承中构造函数求助
本帖最后由 xdthw 于 2013-05-22 17:47:56 编辑
class Employee{
public:
Employee();
};
class Manager : public Employee
{
public:
Manager();
};上面的初始化画出问题了二下面的为什么可以
class Employee{
public:
Employee(){cout<<"hello";};
};
class Manager : public Employee
{
public:
Manager(){cout<<"hello";};
};求大神给解答一下
[解决办法]
估计是你在其他代码中有Manager mgr; 或者是 new Manager()之类的代码吧?这时链接器链接的时候就会出错。
因为Manager构造函数会先调用基类也就是Employee的构造函数,但是Employee的构造函数没有实现,所以会出错啊。
[解决办法]
第一个你的构造函数只声明了。。还没有定义。。你在后边加个大括号就可以了。。
[解决办法]
那只是声明,有函数体(一对大括号)的才是定义
嗯,我是用new来生成一个Manager类的,但是在基类中不是有Employee();吗,这个不算构造函数?
估计是你在其他代码中有Manager mgr; 或者是 new Manager()之类的代码吧?这时链接器链接的时候就会出错。
因为Manager构造函数会先调用基类也就是Employee的构造函数,但是Employee的构造函数没有实现,所以会出错啊。能说详细点吗?链接错误是什么?
都多一个大括号;
前面那个Employee没有实现,链接错误。
[解决办法]
class Employee{
public:
Employee(){};
};
class Manager : public Employee
{
public:
Manager(){};
};
[解决办法]
链接器link不到