C++ 中的繼承和友誼
在 C++ 中,友誼不可繼承。這意味著,如果一個父類有一些友元函式,則子類將無法獲得這些函式作為友元。
在此示例中,它將生成一個錯誤,因為 display() 函式是 MyBaseClass 的友元,但不是 MyDerivedClass 的友元。 display() 可以訪問 MyBaseClass 的私有成員。
示例
#include <iostream>
using namespace std;
class MyBaseClass {
protected:
int x;
public:
MyBaseClass() {
x = 20;
}
friend void display();
};
class MyDerivedClass : public MyBaseClass {
private:
int y;
public:
MyDerivedClass() {
x = 40;
}
};
void display() {
MyDerivedClass derived;
cout << "The value of private member of Base class is: " << derived.x << endl;
cout << "The value of private member of Derived class is: " << derived.y << endl;
}
main() {
display();
}輸出
[Error] 'int MyDerivedClass::y' is private [Error] within this context
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP