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