赞
踩
- /*Copyright (c) 2011, 烟台大学计算机学院
- * All rights reserved.
- * 作 者: 石尧
- * 完成日期:2014 年05 月 13日
- * 版 本 号:v1.0
- *
- * 问题描述:分析类中成员的访问属性。
- * 样例输入:略.
- * 样例输出:略。
- * 问题分析:略。
- */
- #include <iostream>
- using namespace std;
- 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引用派生类中的基类A的成员i, j k?
- 答:只能调用b1.i,因为i是public型的,而其他两个是protected和private型的。
- (2)派生类B中的成员能否调用基类A中的成员函数f1和f2?
- 答:如果在类内两者都可以调用,不再类内的话只能调用f1.
- (3)派生类B中的成员函数能否引用基类A中的数据成员i, j k?
- 答:只能调用i,j但k不能。
- (4)能否在main函数中用c1.i, c1.j, c1.k, c1.m, c1.n, c1.p基类A的成员i, j k、派生类B的成员m, n、以及派生类C的成员p?
- 答:只能调用c1.i。
- (5)能否在main函数中用c1.f1(), c1.f2(), c1.f3()和c1.f4()调用f1, f2, f3, f4成员函数?
- 答:只有c1.f2()不能调用。
- (6)派生类C的成员函数f4能否调用基类A中的成员函数f1, f2和派生类中的成员函数f3?
- 答:可以,因为是在类内。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。