有以下程序结构,请分析访问属性

来源:百度知道 编辑:UC知道 时间:2024/06/06 02:13:10
有以下程序结构,请分析访问属性
class A // A为基类
{public:
void f1( );
int i;
protected:
void f2( );
int j;
private:
int k;
};

class B: public A //B为A的公用派生类
{public:
void f3( );
protected:
int m;
private:
int n;
};

class C: public B //C为B的公用派生类
{public:
void f4( );
private:
int p;
};

int main( )
{A a1; //a1是基类A的对象
B b1; //b1是派生类B的对象
C c1; //c1是派生类C的对象
return 0;
}问:
(1) 在main函数中能否用b1.i,b1.j和b1.k引用派生类B对象b1中基类A的成员?
(2) 派生类B中的成员函数能否调用基类A中的成员函数f1和f2?
(3) 派生类B中的成员函数能否引用基类A中的数据成员i,j,k?

(1) 在main函数中能否用b1.i,b1.j和b1.k引用派生类B对象b1中基类A的成员?

b1.i可以,b1.j 和 b1.k不行

(2) 派生类B中的成员函数能否调用基类A中的成员函数f1和f2?

可以

(3) 派生类B中的成员函数能否引用基类A中的数据成员i,j,k?

可以引用 i和j,不能引用k!