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';
}