1. 程式人生 > >派生類環境中基類物件不能訪問自己的保護成員

派生類環境中基類物件不能訪問自己的保護成員

// 發現這樣一個問題 ,程式如下
#include <iostream>
using namespace std;


class Base
{
protected :
int a;
};
class Derived : public Base
{
public : 
int d;
void g()
{
cout << a << endl; // 這個是在派生類環境中直接操控保護成員 
}
void f()
{
Base b;
b.a= 100;// 這裡根本不允許訪問自己的 保護成員  
cout << "jack : " << b.a << endl;
return ;
}
};
int main(void)
{
Derived d;
d.g();
//d.f();
return 0;

/*
這個問題是這樣的(我想的) : 
在派生類環境中,派生類可以直接操控保護成員。

但不能通過基類物件來操控基類物件的保護成員,
 

即若有基類物件,該基類物件無權訪問自己的保護成員。

不確定我的猜想是不是正確的,我暫時沒找著權威的說法 ,希望得到權威性的解答,或者相關的資訊

 
*/