本文主要是介绍子类继承父类成员问题,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
子类不能从父类继承的有:
1. 构造函数
2. 拷贝构造函数
3. 析构函数
子类能从父类继承的有:
1、静态成员变量
2、静态成员函数
3、友元函数
4、赋值操作符=重载函数
class father
{
public:
void myfun()
{
cout << "father!" << endl;
return;
}
};
class son :public father
{
public:
void myfun(int i )
{
cout << "son: " << i << endl;
return;
}
};
void main()
{
father obj1;
obj1.myfun();
son obj2;
obj2.myfun();//error
}
出错的原因在于:父类的myfun被子类的myfun给隐藏重定义了
obj2调用myfun,编译器需要查找名字myfun,在son类中找到。一旦找到了mufun,编译器不再继续查找,只是看参数是否匹配。(参考C++primer (第四版)page 500)可以这样使用:using father::myfun();
这篇关于子类继承父类成员问题的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!