// 发现这样一个问题 ,程序如下
#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;
}
/*
这个问题是这样的(我想的) :
在派生类环境中,派生类可以直接操控保护成员。
但不能通过基类对象来操控基类对象的保护成员,
*/
#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;
}
/*
这个问题是这样的(我想的) :
在派生类环境中,派生类可以直接操控保护成员。
但不能通过基类对象来操控基类对象的保护成员,
即若有基类对象,该基类对象无权访问自己的保护成员。
不确定我的猜想是不是正确的,我暂时没找着权威的说法 ,希望得到权威性的解答,或者相关的信息
*/