C++面向对象程序设计第五章第5题求解

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

class A

{public:

void f1();

int i;

protected:

void f2();

int j;

private:

int k;

};

class B: public A

{public:

void f3();

protected:

int m;

private:

int n;

};

class C: public B

{public:

void f4();

private:

int p;

};

int main()

{

A a1;

B b1;

C c1;

return 0;

}

问:

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

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

(3)派生类B中的成员函数能否引用基类A中的数据成员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?

(5) 能否在main函数中用c1.f1(),c1.f2(),c1.f3()和c1.f4()调用f1,f2,f3,f4成员函数?

(6)派生类C的成员函数f4能否调用基类A中的成员函数f1,f2和派生类中的成员函数?

第1个回答  推荐于2017-12-16
(1)
b1.i 正确因为i是A类的公有成员,可以继承到子类B
b1.j b1.k 错误。因为j为保护成员,k为私有成员,虽然被继承了,但不能够访问,正如a1.j,a1.k也是错误的。这样调用只能调用公有成员

(2)
都可以,在B类里面,A类非私有成员都可以给B的成员函数使用,因为都被继承了过来

(3)
跟第二个类似,非私有的都可以使用。因此i,j可以使用。

(4)
c1.i是对的,其他都是错的

(5)
公有就可以了。f2不行

(6)
非私有的都可以,因此全部都行

楼主问的问题,其实掌握两条定理就好了。
(1)类里面能调用该类或基类的非私有成员变量或成员函数。
(2)类外对象能调用该类或基类的公有成员变量或成员函数。本回答被提问者和网友采纳

面向对象C++程序段的题,求解!
因为a=1,所以会从case 1:开始执行。又因为所以case都没有break;,下面的case也会执行,所以:执行b=a+1;后a=1,b=2。执行b=a+2;后a=1,b=3。执行b=a+3;后a=1,b=4。所以,答案是D。

求数据结构(用面向对象方法与C++语言描述)第二版 殷人昆主编 课后答案...
e(0,1)=0, e(0,2)=0, e(1,3)=5, e(2,3)=6, e(2,4)=6, e(3,4)=12, e(3,5)=12,e(4,5)=15, e(3,6)=12, e(5,8)=16, e(4,7)=15, e(7,8)=19, e(6,9)=16, e(8,9)=21 每个活动的最迟开始时间: l(0,1)=4, l(0,2)=0, l(1,3)=9, l(2,3)=6,...

《面向对象程序设计语言C++(第二版)》陈志泊主编的书,5-13的例题运行...
另外把int (*p)()改成int (*p)(int,int)这是函数指针,具体的你看书吧

c++谭浩强第二版课后题答案
【解】 上机编译出错,编译出错信息告知在第2行出错,经检查,发现第1行的末尾多了一个分号,编译系统无法理解第2行的花括号,导致报告第2行出错。将第1行的末尾的分号去掉,重新编译,编译出错信息告知在第5行和第6行出错。第5行出错原因是cout未经声明,因为cout不是C++语言提供的系统的关键字,而是输出流的对象,必须...

c++程序设计的目录
第1章 程序设计方法和C++语言概述 11.1 程序编写过程 11.2 面向过程程序设计方法 21.3 面向对象程序设计方法 31.4 C++语言的发展 51.5 C++语言程序的开发过程 71.6 一个简单的程序 7本章小结 10习题 10第2章 数据类型、运算符和表达式 112.1 数据类型 112.2 常量和变量 ...

面向对象程序设计综合实践内容简介
面向对象程序设计综合实践是一本为已经掌握C++语言并理解面向对象编程基础的学习者精心编撰的指南。本书旨在通过实际操作,提升学习者运用面向对象思维解决实际问题的能力。首先,它引导学生进行需求分析,这是程序设计的第一步,旨在明确问题的需求和解决方案的框架(第1章)。接着,书中的第二和第三章概述...

谭浩强的C++程序设计与C++面向对象程序设计有什么区别
内容会重复,如果你没有基础或者基础较差,可以选择C++程序设计,485页,如果你有一定C++基础,可以选择C++面向对象程序设计,285页。前一本主要是语法,后一本更多谈到编程思想和方法算是个进阶教程。

面向对象程序设计:C++高级语言目录
面向对象程序设计:C++高级语言教程 第1章,C++入门 1.1 程序设计基础:理解编程的基本概念1.2 高级语言C++:掌握其特性和应用1.3 初步实践:编写第一个C++程序1.4 小结:回顾所学1.5 学习指南:后续章节概览第2章 数据与控制 2.1 计算机内存理解:数据存储基础2.2 数据类型:认识基本类型2.3 ...

面向对象程序设计案例教程内容简介
《面向对象程序设计案例教程》是一本以Visual C++ 6.0为平台的实践教材,其核心内容围绕一个完整的实例系统的开发过程展开。教程将C++的基本知识和Windows程序设计基础巧妙融合,通过实例系统中不同功能模块的实现,逐步深入地讲解编程技巧。教程的前四章主要讲解C++基础语法,注重底层类的封装和定义,不涉及...

c++程序设计内容简介
第六章深入探讨类和对象的使用,包括类的声明与定义、构造和析构,静态成员、友元以及运算符重载等高级概念。第七章重点讨论C++面向对象编程的思想、概念和方法,帮助读者掌握面向对象设计的核心。第八章介绍运行时类型识别(RTTI)与异常处理,这些是现代C++程序设计中不可或缺的部分。本书内容详实,实例...

相似回答