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

来源:互联网 发布:重庆时时彩数据api 编辑:程序博客网 时间:2024/06/06 15:45
// 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;}