C++ 中protected對於繼承的意義


private成員總是嚴格私有的,但在實際項目中,有時希望某些東西隱藏起來,但仍允許其 派生類的成員訪問。於是關鍵字protected派上了用場。它的意思是:“就這個類的用戶而 言,它是private的,但它可被從這個類繼承來的任何類使用”。 最好讓數據成員是private,因為我們應該保留改變內部實現的權利。然后才能通過 protected成員函數控制對該類的繼承者的訪問。

#include<fstream>
#include<iostream>
using namespace std;

class Base {
int i;
protected:
int read() const {return i;}
void set(int ii) { i = ii;}
public:
Base(int ii = 0) : i(ii) {}
int value(int m) const {return m*i;}
};

class Derived : public Base{
int j;
public:
Derived(int jj = 0) : j(jj) {}
void change(int x) {set(x);}
int readB (){read();}
};

int main(){
Derived d;
d.change(10);
cout << d.readB() << '\n';
cout << d.value(10) << '\n';
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM