私有继承,公有继承,保护继承(代码附上自己体会)
来源:互联网 发布:淘宝汽车服务指定安装 编辑:程序博客网 时间:2024/05/17 03:46
/×
公有继承
×/
# include <iostream>
# include <stdlib.h>using namespace std;
class bass{
int x, y;
protected:
int a, b;
public:
int m, n;
void setx(int x){
this->x = x;
}
void sety(int y){
this->y = y;
}
int getx(){
return x;
}
int gety(){
return y;
}
};
class derived :public bass{
public:
void setxy(int x, int y){
setx(x);
sety(y);
};
void setab(int a, int b){
this->a = a;
this->b = b;
}
void setmn(int m, int n){
this->m = m;
this->n = n;
}
int getsumxy()
{
return getx() + gety();
}
int getsumab(){
return a + b;
}
int getsummn(){
return m + n;
}
};
int main()
{
derived obj;
obj.setxy(1, 2);
obj.setab(10, 20);
obj.setmn(100, 200);
//cout << obj.x + obj.y << endl;
//cout << obj.a + obj.b << endl;
cout << obj.m + obj.n << endl;
getchar();
return 0;
}
//私有继承
# include <iostream>
using namespace std;
class bass{
int x, y;
protected:
int a, b;
public :
int m, n;
void setx(int x){ this->x = x;
};
void sety(int y){ this->y = y;
};
int getx(){
return x;
}
int gety(){
return y;
}
};
class dervied :private bass{
public:
void setxy(int x, int y){
setx(x);
sety(y);
}
void setab(int a, int b){
this->a = a;
this->b = b;
}
void setmn(int m, int n){
this->m = m;
this->n = n;
}
int getsumxy(){
return getx() + gety();
}
int getsumab(){
return a + b;
}
int getsummn(){
return m + n;
}
};
int main()
{
dervied obj;
obj.setxy(1, 2);
obj.setab(10, 10);
obj.setmn(100, 200);
//cout << "x+y=" << obj.x + obj.y << endl; 错误请查看私有继承
//cout << "a+b=" << obj.a + obj.b << endl; 错误请查看私有继承
//cout << "m+n=" << obj.m + obj.n << endl; 错误请查看私有继承
cout << "x+y=" << obj.getsumxy() << endl;
cout << "a+b=" << obj.getsumab() << endl;
cout << "m+n=" << obj.getsummn() << endl;
getchar();
return 0;
}
//保护继承(个人感觉是最有用的继承方式所以着重描述了这种继承方式)
# include <iostream>
using namespace std;
class bass{
private:
int x, y;
protected:
int a, b;
public :
int m, n;
void setx(int x){ this->x = x; }
void sety(int y){ this->y = y; }
int getx(){ return x; }
int gety(){ return y; }
};
class extbass :protected bass{};
class dervised:protected extbass{
public:
void setxy(int x, int y){ setx(x); sety(y); } //继承类中间的公有成员调用基类中间继承过来的保护成员
void setab(int a, int b){ this->a = a; this->b = b; }
void setmn(int m, int n){ this->m = m; this->n = n; }
int getsumxy(){ return getx() + gety(); } //继承类中间的公有成员调用基类中间继承过来的保护成员
int getsumab(){ return a + b; }
int getsummn(){ return m + n; }
};
int main()
{
dervised obj;
obj.setxy(1, 2);
obj.setab(10, 20);
obj.setmn(100, 200);
cout << "x+y=" << obj.getsumxy() << endl;
cout << "a+b=" << obj.getsumab() << endl;
cout << "m+n=" << obj.getsummn() << endl;
//cout << "x+y=" << obj.x + obj.y << endl; 原本基类中间私有保护的数据在三种继承方式中都是无法继承的;
//cout << "a+b=" << obj.a + obj.n << endl; 原本基类中的保护成员在保护继承的方式下依旧是保护成员无法直接访问保护成员;
//cout << "m+n=" << obj.m + obj.n << endl; 原本基类中间的共有成员在保护继承的方式下变成派生类中的保护成员无法直接访问;
return 0;
}
- 私有继承,公有继承,保护继承(代码附上自己体会)
- 公有继承 保护继承 私有继承 自己总结!
- 小解继承!!!(公有继承,私有继承,保护继承)
- 公有继承,私有继承,和保护继承
- 公有继承,私有继承,和保护继承
- 公有继承,私有继承,和保护继承
- 公有继承 保护继承 私有继承
- 公有继承 私有继承 保护继承
- 公有继承、保护继承和私有继承
- 公有继承、保护继承和私有继承
- 公有继承 保护继承 私有继承
- c++ 公有继承/私有继承/保护继承
- 公有继承 保护继承 私有继承
- c++:私有继承,公有继承,保护继承
- C++ 公有继承,私有继承,保护继承
- 公有继承,私有继承,和保护继承(转载)
- 实现继承(公有私有保护继承以及多继承)
- 2017061801公有继承保护继承私有继承公有继承保护继承私有继承
- 浅谈C链表(1)
- 百度地图中心点位置设置
- IOS开发:把 JSON 数据转化成 Arrays 或者 Dictionaries
- 【多线程】(七)互斥量Mutex
- BZOJ 2300 HAOI2011 防线修建 平衡树维护凸包
- 私有继承,公有继承,保护继承(代码附上自己体会)
- Ubuntu下安装numpy and matplotlib
- MySQL内核InnoDB存储引擎(卷1)笔记
- 数据结构实验之链表二:逆序建立链表
- struts2对action中的方法进行输入校验(1)
- Android 客户端访问服务器以及服务器开发
- 解决 ADB端口被占用问题
- chromium进程间通信-ChannelImpl
- 2015阿里巴巴研发笔试题