继承方式

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