您的位置:首页 > 编程语言

私有继承、保护继承、公共继承之间的区别(代码形式)

2012-05-14 09:21 330 查看
// Inheritance.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"
#include <iostream>

using namespace std;

class Parent
{
public:
Parent(int var = 1)
{
pub = var;
ptd = var;
prt = var;
}
public:
int pub;
protected:
int ptd;
private:
int prt;
};
class child1:public Parent
{
public:
int getPub()
{
return pub;
}
int getPtd()
{
return ptd;
}
/* //错误。不管什么继承,子类不能访问父类的private成员变量,但可以访问protected和public成员变量。
int getPrt()
{
return prt;
}
*/
};
class child2:protected Parent
{
public:
int getPub()
{
return pub;
}
int getPtd()
{
return ptd;
}
/* //错误。不管什么继承,子类不能访问父类的private成员变量,但可以访问protected和public成员变量。
int getPrt()
{
return prt;
}
*/
};
class child3:private Parent
{
public:
int getPub()
{
return pub;
}
int getPtd()
{
return ptd;
}
/* //错误。不管什么继承,子类不能访问父类的private成员变量,但可以访问protected和public成员变量。
int getPrt()
{
return prt;
}
*/
};

int _tmain(int argc, _TCHAR* argv[])
{

child1 ch1;
child2 ch2;
child3 ch3;
int var = 0;
ch1.pub = var;
//ch1.ptd = var; //错误。父类的保护成员变量、私有成员不能够被
//var = ch1.ptd; //以任何形式继承的子类的任何对象访问和修改
var = ch1.getPtd();

//var = ch2.pub; //错误。保护继承将父类的中的public和protected成员都变成子类protected类型的成员变量,而一个类的对象是无法访问
//ch2.pub = var; //错误。该类的protected和private成员变量的,所以一个保护继承子类的对象是无法访问和修改父类中public的成员变量的。
var = ch2.getPtd();

//ch3.Pub() = var;//错误。私有继承将父类中的成员变量全部变成子类中private类型的,此时子类对象当然不能修改和访问这些私有成员变量。
var = ch3.getPtd();

return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐