类的继承
来源:互联网 发布:中国瓷器品牌知乎 编辑:程序博客网 时间:2024/05/01 05:59
类继承的方法:
Class derived_class_name : access base_class_name{};
其中access为访问限定符。
当一个基类的访问限定符为public时,基类的所有共有成员将成为派生类的公有成员,基类的所有保护成员将成为派生类的保护成员。然而,基类的私有元素将总是为基类专有,不能被派生类访问。
当一个基类的访问限定符为private时,基类的公有成员和保护成语将变成派生类的私有成员。也就是说,它们仍然可以被派生类的成员访问,但却不能被用户程序中既不是基类、也不是派生类的成员访问。
当某个类成员声明为protected时,该成员将不能被程序中其他的非成员元素所访问。但有个意外,访问保护成员与访问私有成员相同——只能被该类的其他成员访问,唯一的例外发生在保护成员被继承时。在这种情况下,保护成员与私有成员具有本质的不同。
基类的私有成员不能被程序中包括所有派生类的其他部分访问。然而,保护成员则不同。如果基类被继承为public,那么基类的保护成员将成为派生类的保护成员,因而可以被派生类所访问。
即使继承时使用private继承,基类的保护成员变成派生类的私有成员,所以仍然可以被派生类成员访问。
将基类继承为保护类是可行的。如果是这样,该基类的所有共有成员和保护成员将成为派生类的保护成员。保护成员、私有成员均不能在main函数中调用的。
因此下面这个测试代码是可以通过编译的:
#include<iostream>
using namespace std;
class base{
protected:
int m,n;
public:
void set_m_n(int x,int y){m=x,n=y;}
void show(){cout<<"m is "<<m<<'/t'<<"n is "<<n<<endl;}
};
class derived_class :public base{
int mn;
public:
void set_mn(){mn=m*n;}
void show_mn(){cout<<mn<<endl;}
};
int main()
{
derived_class cl;
cl.set_m_n(2,5);
cl.set_mn();
cl.show();
cl.show_mn();
return 0;
}
- c++类的继承:私有继承,公有继承,保护继承
- 类的继承 保护继承和私有继承
- C#类的继承-什么是继承
- 继承QVector----模板类的继承
- 类的一般继承与虚继承
- 继承:单继承、派生类成员的访问属性、多继承、菱形继承、虚继承,菱形虚拟继承
- java 类的继承
- 类的继承
- C#类的继承
- JavaScript类的继承
- C++ 类的继承
- 类的继承
- Java类的继承
- 类的继承
- 抽象类的继承
- 类的继承
- 类的继承用法
- 类的继承方式
- Muti-bin的一些相关函数和设置
- Android:用定时器刷 timer 新界面
- 地址总线,字长,内存容量,寻址范围 之间的计算
- Apache中对access.log文件日期格式的设置
- Symbian开发简述(描述符)
- 类的继承
- 解决数据内有'的sql语句
- 解决Eclipse3.4 Unmatched braces in the pattern 问题
- 解决eclipse无法启动问题
- 删除重复记录
- 我的MiniGUI移植之路
- 相对路径与绝对路径
- 设计一个单链表的类模板,使其能够完成单链表的创建和显示
- HTK 语音识别 ASK