首页 > 其他 > 详细

继承方式

时间:2019-05-10 18:26:20      阅读:97      评论:0      收藏:0      [点我收藏+]

C++中三种不同的继承方式:

  1. public继承。父类子成员在子类中保持原有的访问级别。

  2. private继承。父类的所有成员在子类变成私有成员。

  3. protected继承。父类中的公有成员变成保护成员,其他成员不变。

 

技术分享图片

 

 


#include<string>
#include<iostream>

using namespace std;

class parent
{
private:
        int private_date;
protected:
        int protected_data;
public:
        int public_data;
};

class child_1 : public parent
{
public:
        void print()
        {
            cout << "private_date = " << private_data << endl;        // 无法访问
            cout << "protected_data = " << protected_data << endl;
            cout << "public_data = " << public_data << endl;
        }
};

class child_2 : protected parent
{
public:
        void print()
        {
            cout << "private_date = " << private_data << endl;        // 无法访问
            cout << "protected_data = " << protected_data << endl;
            cout << "public_data = " << public_data << endl;
        }
};

class child_3 : private parent
{
public:
        void print()
        {
            cout << "private_date = " << private_data << endl;          // 无法访问
            cout << "protected_data = " << protected_data << endl;
            cout << "public_data = " << public_data << endl;
        }
};

int main(void)
{
    child_1 c_1;
    child_2 c_2;
    child_3 c_3;
    c_1.print();
            cout << "private_date = " << private_data << endl;        // 无法访问
            cout << "protected_data = " << protected_data << endl;     // 无法访问
            cout << "public_data = " << public_data << endl;
    c_2.print();
            cout << "private_date = " << private_data << endl;        // 无法访问
            cout << "protected_data = " << protected_data << endl;     // 无法访问
            cout << "public_data = " << public_data << endl;
    c_3.print();
            cout << "private_date = " << private_data << endl;        // 无法访问
            cout << "protected_data = " << protected_data << endl;     // 无法访问
            cout << "public_data = " << public_data << endl;         
    return 0;
}

 



 

 一般只使用public继承。

C++派生语言只支持public继承。

protected,private复杂度大于实用度。

 

继承方式

原文:https://www.cnblogs.com/zsy12138/p/10845802.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!