码迷,mamicode.com
首页 > 编程语言 > 详细

c++ 多态

时间:2016-11-06 11:49:33      阅读:216      评论:0      收藏:0      [点我收藏+]

标签:highlight   prot   main   ret   访问   继承   无法   情况   void   

示例代码对以下两种情况进行了说明:

1. 继承时改变虚函数的权限;

2. 私有继承;

class A 
{
public:
    virtual void test1() {
        cout << "public test1 of A" << endl;
    }
private:
    virtual void test2() {
        cout << "private test2 of A" << endl;
    }
protected:
    int p1;
private:
    int p2;
};

class B: public A
{
private:
    void test1() {
        cout << "privte test1 of B" << endl;
    }
public:
    void test2() {
        cout << "public test2 of B" << endl;
    }

};

class C: private A
{
public:
    void testProtected() {
        cout << p1 << endl;
    }
};

class D: public C
{
public:
    void testProtected() {
        // cout << p1 << endl;//因为c私有继承A,c不能访问a的protedted成员
    }
};

int main()  {
    B b;
    A* a = &b;

    a->test1();//可以访问, 权限以A为准
    // a->test2();//无法访问私有成员

    C c;
   c.testProtected(); 
return 0;
}

  

c++ 多态

标签:highlight   prot   main   ret   访问   继承   无法   情况   void   

原文地址:http://www.cnblogs.com/simonote/p/6034911.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!