c ++中继承问题小结

原创 2012年04月06日 10:43:03
1.c++中继承有公有继承,保护继承,私有继承

    定义个基类:

    #include<iostream>

    using namespace std;

    class Base

    {

    public:

    void display()

    {

    cout《"huang"《endl;

    }

    protected:

    int x;

    private:

    int y;

    };

    定义一个派生类:

    公有继承:派生类的对象可以访问基类中的公有成员,派生类的成员函数可以访问基类的公有和保护成员,

    基类的公有成员和保护成员作为派生类的成员时,保持其原有状态

    class A:public Base

    {

    public:

    void print()

    {

    cout《"liglog"《endl;

    display();//派生类内部可以访问基类的公有成员

    x=0;//派生类内部中可以访问基类的保护成员

    cout《x《endl;

    //y=1;//派生类内部都不可访问基类的私有成员

    //cout《y《endl;

    }

    protected:

    int Ax;

    private:

    int Ay;

    };

    保护继承:派生类的成员函数可以访问基类的公有成员和保护成员,以及基类的公有成员和保护成员作为派生类的保护成员,保护成员还可被派生类的子类访问

    class B:protected Base

    {

    public:

    void print()

    {

    cout《"shi"《endl;

    display();//派生类内部可访问基类的公有成员

    x=1;//派生类内部可访问基类的保护成员

    cout《x《endl;

    //      y=1;//派生类内部不可访问基类的私有成员

    //      cout《y《endl;

    }

    protected:

    int Bx;

    private:

    int By;

    };

    私有继承:基类的公有成员和保护成员作为派生类的私有成员,不能被派生类的子类访问,即不能被往下继承。

    class C:private Base

    {

    public:

    void print()

    {

    cout《"wo"《endl;

    display();//派生类内部可访问基类的公有成员

    x=1; //派生类内部可访问基类的保护成员

    cout《x《endl;

    //      y=1; //派生类内部不可访问基类的私有成员

    //      cout《y《endl;

    }

    protected:

    int Cx;

    private:

    int Cy;

    };

    int main()

    {

    // 公有继承部分

    A aObject;

    aObject.display();//派生类外部可以访问基类的公有成员

    aObject.print();

    // aObject.x=1;//派生类外部不可访问基类的保护成员

    // aObject.y=3;//派生类外部不可访问基类的私有成员

    //保护继承部分

    B bObject;

    // bObject.display();//派生类外部不可访问基类的公有成员

    bObject.print();

    // bObject.x=1;//派生类外部不可访问基类的保护成员

    // bObject.y=1;//派生类外部不可访问基类的私有成员

    //私有继承部分

    C  cObject;

    //  cObject.display();//派生类外部不可访问基类的公有成员

    cObject.print();

    //  cObject.x=1;//派生类外部不可访问基类的保护成员

    //  cObject.y=1;//派生类外部不可访问基类的私有成员

    return 0;

    }

    哪里不对的,指点指点,别指指点点。

相关文章推荐

【iOS-Cocos2d游戏开发之十二】浅析使用C++/C/OC进行iOS游戏混编出现“failed with exit”问题与小结;

李华明Himi 原创,转载务必在明显处注明:转载自【黑米GameDev街区】 原文链接: http://www.himigame.com/iphone-cocos2d/478.html     大家都...

C++ +小结2 继承, 多态和引用

#include using namespace std; // 继承机制 class Animal { public: // 如果在父类中只定义了一个有参数的构造函数,而没有显示定一个...

web编码问题小结.doc

  • 2012年01月14日 10:25
  • 35KB
  • 下载

小结jsp页面跳转问题

  • 2011年12月10日 10:00
  • 4KB
  • 下载

C和指针第四章编程练习题小结2

scanf输入字符串 遇到空格等就会停止输入。所以最好用gets()函数: gets(src); 同样printf输出字符串的方式printf("%s\n",src); src为存储字符串的数组名 ...
  • xxz1014
  • xxz1014
  • 2014年11月05日 20:08
  • 290

re2c使用小结(2)

第一次写的re2c代码对于处理某些字符串还是不够健壮,比如处理如下

近况小结+Objective-c解析XML文件

蛋疼的XCode,相当的无语啊!一个月前就想尝试用xml来装我的数据了 就因为没找到添加库的选项,后来不了了之了。 iphone开发解析xml的库还是蛮多的,什么TouchXML,KISSXML,...

变量声明和定义的区别||变量存储类别小结(C程序设计中的内容)

我们在程序设计中,时时刻刻都用到变量的定义和变量的声明,可有些时候我们对这个概念不是很清楚,知道它是怎么用,但却不知是怎么一会事,下面我就简单的把他们的区别介绍如下: 变量的声明有两种情况: 1...

Eclipse开发C/C++之使用技巧小结,写给新手

我需要在Linux下开发C++项目,没有VS,用Vim开发是不错,但项目大了,效率 就跟不上IDE了,所以选了Eclipse+CDT插件。当然,Vimers觉得我说的不对的请 勿喷哈,我也是水手一...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:c ++中继承问题小结
举报原因:
原因补充:

(最多只允许输入30个字)