对私有继承成员的公有化
2014-08-25 16:30
127 查看
在C++中一般很少采用私有继承。
一般采用的都是公有继承的方式:
class A:public B{...};
但是私有继承在我们只要部分公有化继承成员的时候是很有用的。
当采用的是私有继承的时候,基类中的public都会变成private 。而此时如果我们希望其中的一部分成员是可视的话,那么我们只要在继承的类的public中声明他们就好了。
#include<iostream>
using namespace std;
class Pet{
public:
void eat()const{cout<<"eating\n";}
void speak()const{cout<<"wa~wa~\n";}
int height(int x){
return x;
}
};
class Dog:Pet{
public:
Pet::eat;
Pet::speak;
Pet::height;
};
int main()
{
Dog z;
z.eat();
cout<<"height is "<<z.height(4)<<endl;
z.speak();
return 0;
}而注意的是我们在继承的类中的public的重新声明当中,不管函数的参数,只要写入函数名就可以了。
一般采用的都是公有继承的方式:
class A:public B{...};
但是私有继承在我们只要部分公有化继承成员的时候是很有用的。
当采用的是私有继承的时候,基类中的public都会变成private 。而此时如果我们希望其中的一部分成员是可视的话,那么我们只要在继承的类的public中声明他们就好了。
#include<iostream>
using namespace std;
class Pet{
public:
void eat()const{cout<<"eating\n";}
void speak()const{cout<<"wa~wa~\n";}
int height(int x){
return x;
}
};
class Dog:Pet{
public:
Pet::eat;
Pet::speak;
Pet::height;
};
int main()
{
Dog z;
z.eat();
cout<<"height is "<<z.height(4)<<endl;
z.speak();
return 0;
}而注意的是我们在继承的类中的public的重新声明当中,不管函数的参数,只要写入函数名就可以了。
相关文章推荐
- 私有继承成员的公有化
- 私有继承成员公有化
- 子类继承父类的私有成员
- java 私有的成员能被子类继承吗?
- C++ 公有继承、保护继承和私有继承中类成员的访问权限的控制
- JS对象-继承-私有成员
- C++ 私有、共有、保护成员的继承方式
- 私有成员有没有被继承?
- 继承:子类可以继承父类的私有成员变量吗??
- 类的size & 私有成员的继承方式
- 私有的成员能被子类继承吗?
- 私有的成员能被子类继承吗?
- Js实现类继承和闭包私有成员并调用
- JavaSE8基础 子类只能继承到父类中公有的成员,无法用私有成员
- C++ 公有继承、保护继承和私有继承中类成员的访问权限的控制
- 静态成员、关键字mutable 、公有继承与私有继承、虚函数的基本概念
- 父类的私有成员变量能被子类继承吗?
- C++中基类私有成员会被继承吗
- 《java编程思想》之控制对成员的访问权限的原因、final、继承和组合、私有方法的“覆盖”
- 类的继承私有成员问题