C++派生類物件訪問基類的protected成員
《C++ Primer》上有這麼一句話令人費解:“派生類如果要訪問基類protected成員只有通過派生類物件,派生類不能訪問基類物件的protected成員。”而實際上的意思是:
只有在派生類中才可以通過派生類物件訪問基類的protected成員。 |
//只有在派生類中才可以通過派生類物件訪問基類的protected成員。
#include <iostream>
#include <vector>
#include <iterator>
#include <algorithm>
#include <numeric>
using namespace std;
class Base
{
protected:
int i;
};
class Derived: public Base
{
public:
void fun(Derived d)
{
d.i = 3; //只有在派生類中才可以通過派生類物件訪問基類的protected成員。
}
};
int main()
{
Derived derived;
// derived.i = 3; //只有在派生類中才可以通過派生類物件訪問基類的protected成員。
return 0;
}
相關文章
- c# 基類派生類成員方法訪問C#
- 《C++ Primer》派生類到基類轉換的可訪問性C++
- YTU-OJ-Problem J: B3 指向基類的指標訪問派生類的成員函式指標函式
- C++中類繼承public,protected和private關鍵字作用詳解及派生類的訪問許可權C++繼承訪問許可權
- C/C++—— 除了用類成員函式訪問類私有成員變數外,還可以通過類物件地址來直接訪問和修改類的私有成員變數C++函式變數物件
- C++物件切片探秘:派生類物件如何被‘切割’?C++物件
- C++ protected許可權成員以及類和結構體區別C++結構體
- 基類與派生類的轉換
- 物件導向類成員物件
- 繼承 基類與派生類繼承
- Java類的設計和封裝及類成員的訪問控制Java封裝
- c++類的靜態成員C++
- C++:類的成員函式C++函式
- C++:類的靜態成員C++
- C++ 類的靜態成員C++
- java類成員中的訪問級別有哪些Java
- C++ 類成員指標C++指標
- C++類靜態成員C++
- C++ 類成員函式C++函式
- Python基礎(二十):物件導向“類”第三課——類成員Python物件
- [C++]繼承和派生類C++繼承
- C++類中的常成員和靜態成員C++
- C# 繼承 子類(派生類) 父類(基類)C#繼承
- C++派生類的拷貝構造C++
- 派生類
- c#繼承父子類成員間的互訪問性C#繼承
- C++,繼承,基類和派生類指標間賦值等知識C++繼承指標賦值
- Java中變數之區域性變數、本類成員變數、父類成員變數的訪問方法Java變數
- c#之基類派生類base_小記C#
- Java中類的成員方法和變數的訪問許可權Java變數訪問許可權
- 泛型類派生子類泛型
- C++學習筆記(三):類與物件--靜態成員變數與常成員函式C++筆記物件變數函式
- C++中的成員物件C++物件
- C++ 類 & 物件C++物件
- c#之基類派生類base_小記(2)C#
- 【python】物件導向之類成員(屬性)Python物件
- 類的繼承和派生繼承
- C++類的靜態成員變數初始化C++變數