gu 主讲人:王国军 教授ieee-trustcom.org/faculty/~csgjwang/gucoursedownload/oop/...3:c++...

46
GU 广州大学 计算机科学与网络工程学院 主讲人:王国军 教授 [email protected] http://trust.gzhu.edu.cn/ 电话:020-39366920 手机:13360581866 办公室:行政西楼前座429B室 根据《C++程序设计基础》(第5版)(上)和《Visual C++ 面向对象与可视化程序设计》(第4版)制作,仅供广州大学计 算机、软件工程、网络工程、网络空间安全2019级讲课使用。

Upload: others

Post on 08-Sep-2021

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: GU 主讲人:王国军 教授ieee-trustcom.org/faculty/~csgjwang/GUcoursedownload/oop/...3:C++ Primer Plus(第6版)中文版,[美]Stephen Prata 著, 人民邮电出版社,2012年7月。教材1

GU

广州大学

计算机科学与网络工程学院

主讲人:王国军 教授

[email protected]://trust.gzhu.edu.cn/

电话:020-39366920手机:13360581866办公室:行政西楼前座429B室根据《C++程序设计基础》(第5版)(上)和《Visual C++

面向对象与可视化程序设计》(第4版)制作,仅供广州大学计算机、软件工程、网络工程、网络空间安全2019级讲课使用。

Page 2: GU 主讲人:王国军 教授ieee-trustcom.org/faculty/~csgjwang/GUcoursedownload/oop/...3:C++ Primer Plus(第6版)中文版,[美]Stephen Prata 著, 人民邮电出版社,2012年7月。教材1

本课程的性质

v计算机应用广泛到各行各业,几乎所有行业、领域都需要使

用计算机解决问题:程序设计(Programming)非常重要! v本课程的教学目标不是马上培养一个会使用某种面向对象

程序设计语言(例如C++语言)的程序员,而是强调对程序设

计语言的理解和应用;同时,本课程还介绍如何使用微软基

础类库(MFC)进行简单的可视化程序设计。

v《面向对象程序设计》是计算机科学与技术本科专业、以及

相关本科专业包括软件工程、网络工程、信息安全、网络空间

安全*、人工智能*、物联网工程**、数据科学与大数据技术**等

的一门重要的专业基础课。

Page 3: GU 主讲人:王国军 教授ieee-trustcom.org/faculty/~csgjwang/GUcoursedownload/oop/...3:C++ Primer Plus(第6版)中文版,[美]Stephen Prata 著, 人民邮电出版社,2012年7月。教材1

2.熟悉Visual C++编程工具以及Visual Studio开发平台和环

境,能结合实际问题组织数据结构,正确分析问题,设计合

理的解决方案。

基本要求

1.熟练掌握C++面向对象程序设计方法,初步掌握基于MFC的

Windows可视化程序设计方法。

Page 4: GU 主讲人:王国军 教授ieee-trustcom.org/faculty/~csgjwang/GUcoursedownload/oop/...3:C++ Primer Plus(第6版)中文版,[美]Stephen Prata 著, 人民邮电出版社,2012年7月。教材1

先修:专业导论、程序设计基础

后续:面向对象分析与设计、软件工程、数据结构、算法

分析与设计、计算机组成原理、操作系统、编译原

理等专业课程等专业课程

与其它课程的关系

Page 5: GU 主讲人:王国军 教授ieee-trustcom.org/faculty/~csgjwang/GUcoursedownload/oop/...3:C++ Primer Plus(第6版)中文版,[美]Stephen Prata 著, 人民邮电出版社,2012年7月。教材1

课时安排与计分标准

总学时 理论 实验

80 48 32

理论课:考试:60%;课堂考勤:13%;随堂测验/讨论:12%;作业:15%。

教材1:C++程序设计基础第5版(上),周霭如 林伟健 编著,

电子工业出版社,ISBN 9787121285950。

教材2:Visual C++面向对象与可视化程序设计(第4版),

黄维通 解辉 编著,高等教育出版社,ISBN 9787040455540。

Page 6: GU 主讲人:王国军 教授ieee-trustcom.org/faculty/~csgjwang/GUcoursedownload/oop/...3:C++ Primer Plus(第6版)中文版,[美]Stephen Prata 著, 人民邮电出版社,2012年7月。教材1

参考书

1:新标准C++程序设计教程,郭炜 编著,清华大学出版社,

2012年8月。

2:C++语言程序设计(第4版),郑莉 编著,清华大学出版

社,2018年6月。

3:C++ Primer Plus(第6版)中文版,[美]Stephen Prata 著,

人民邮电出版社,2012年7月。

Page 7: GU 主讲人:王国军 教授ieee-trustcom.org/faculty/~csgjwang/GUcoursedownload/oop/...3:C++ Primer Plus(第6版)中文版,[美]Stephen Prata 著, 人民邮电出版社,2012年7月。教材1

教材1 教材2

第6章 类与对象 第1章 Windows编程基础

第7章 运算符重载 第2章 对话框

第8章 继承 第3章 常用控件

第9章 虚函数与多态性 第4章 菜单、工具栏和状态栏

第10章 模板 第5章 框架窗口、文档和视图

第11章 输入流/输出流 第6章 图形、文本

内 容

Page 8: GU 主讲人:王国军 教授ieee-trustcom.org/faculty/~csgjwang/GUcoursedownload/oop/...3:C++ Primer Plus(第6版)中文版,[美]Stephen Prata 著, 人民邮电出版社,2012年7月。教材1

6.1 类和对象的定义与访问

6.2 构造函数和析构函数

6.3 类的其他成员

6.4 类的包含

第6章 类与对象

Page 9: GU 主讲人:王国军 教授ieee-trustcom.org/faculty/~csgjwang/GUcoursedownload/oop/...3:C++ Primer Plus(第6版)中文版,[美]Stephen Prata 著, 人民邮电出版社,2012年7月。教材1

(清华郑莉老师第6章数组、指针与字符串)对象数组

(8分钟):

https://next.xuetangx.com/learn/THU08091000247/TH

U08091000247/1515741/video/1358735

简评:

1、定义对象数组的语法其实和定义基本类型的其他数组

是一样的。

2、对象数组中每一个元素对象被创建时,系统都会调用

类构造函数初始化该对象。

MOOC视频与简评

Page 10: GU 主讲人:王国军 教授ieee-trustcom.org/faculty/~csgjwang/GUcoursedownload/oop/...3:C++ Primer Plus(第6版)中文版,[美]Stephen Prata 著, 人民邮电出版社,2012年7月。教材1

(清华郑莉老师第6章数组、指针与字符串)对象指针

(10分钟):

https://next.xuetangx.com/learn/THU08091000247/TH

U08091000247/1515741/video/1358762

简评:

1、定义一个对象指针实际上跟定义其他类型的指针是一

样的。

Point a(4, 5);

Point *p1 = &a;

cout << p1->getX() << endl;

MOOC视频与简评

Page 11: GU 主讲人:王国军 教授ieee-trustcom.org/faculty/~csgjwang/GUcoursedownload/oop/...3:C++ Primer Plus(第6版)中文版,[美]Stephen Prata 著, 人民邮电出版社,2012年7月。教材1

(清华郑莉老师第6章数组、指针与字符串)动态分配

与释放内存(9分钟):

https://next.xuetangx.com/learn/THU08091000247/TH

U08091000247/1515741/video/1358765

简评:

1、当你必须用动态内存分配的方式去申请内存单元的时

候,动态分配的这些单元没有机会给它取变量名,

没有机会给它取数组名,它返回就是一个首地址,

我们迫不得已就必须用地址(指针)去访问存储空

间了。

MOOC视频与简评

Page 12: GU 主讲人:王国军 教授ieee-trustcom.org/faculty/~csgjwang/GUcoursedownload/oop/...3:C++ Primer Plus(第6版)中文版,[美]Stephen Prata 著, 人民邮电出版社,2012年7月。教材1

对于C++的动态存储分配,下列说法正确的是?

new和delete是C++语言中专门用于动态内存分配和释放的函数

动态分配的内存空间也可以被初始化

当系统内存不够时,会自动回收不再使用的内存单元,因此程序中不必用delete释放内存空间当动态分配内存失败时,系统会立刻崩溃,因此一定要慎用new

A

B

C

D

提交

单选题 1分

Page 13: GU 主讲人:王国军 教授ieee-trustcom.org/faculty/~csgjwang/GUcoursedownload/oop/...3:C++ Primer Plus(第6版)中文版,[美]Stephen Prata 著, 人民邮电出版社,2012年7月。教材1

(清华郑莉老师第6章数组、指针与字符串)申请和释放

动态数组(一)(10分钟):

https://next.xuetangx.com/learn/THU08091000247/TH

U08091000247/1515741/video/1358767

简评:

1、课堂上只看一维数组部分(前5分钟)

2、Point *ptr = new Point[2]; //创建对象数组

3、delete[] ptr; //删除整个对象数组

MOOC视频与简评

Page 14: GU 主讲人:王国军 教授ieee-trustcom.org/faculty/~csgjwang/GUcoursedownload/oop/...3:C++ Primer Plus(第6版)中文版,[美]Stephen Prata 著, 人民邮电出版社,2012年7月。教材1

(清华郑莉老师第6章数组、指针与字符串)申请和释放

动态数组(二)(7分钟):

https://next.xuetangx.com/learn/THU08091000247/TH

U08091000247/1515741/video/1358769

简评:

1、动态数组类:ArrayOfPoints

2、Point *points; //指向动态数组首地址

3、int size; //数组大小

MOOC视频与简评

Page 15: GU 主讲人:王国军 教授ieee-trustcom.org/faculty/~csgjwang/GUcoursedownload/oop/...3:C++ Primer Plus(第6版)中文版,[美]Stephen Prata 著, 人民邮电出版社,2012年7月。教材1

(清华郑莉老师第6章数组、指针与字符串)浅层复制

与深层复制(8分钟):

https://next.xuetangx.com/learn/THU08091000247/TH

U08091000247/1515741/video/1358776

简评:

1、浅层复制:实现对象间数据元素的一一对应复制。

2、深层复制:当被复制的对象数据成员是指针类型时,

不是复制该指针成员本身,而是将指针所指对象进

行复制。

MOOC视频与简评

Page 16: GU 主讲人:王国军 教授ieee-trustcom.org/faculty/~csgjwang/GUcoursedownload/oop/...3:C++ Primer Plus(第6版)中文版,[美]Stephen Prata 著, 人民邮电出版社,2012年7月。教材1

(北大郭炜老师第三周类和对象提高)this指针

(15分钟):

http://www.icourse163.org/learn/PKU-

1002029030?tid=1450432459#/learn/content?typ

e=detail&id=1214925558

简评:

1、C++类的(非静态)成员函数翻译成C的全局函数(多

一个参数:this指针)

2、因为静态成员函数并不作用于某个对象,静态成员函

数中不能使用this指针!

MOOC视频与简评

Page 17: GU 主讲人:王国军 教授ieee-trustcom.org/faculty/~csgjwang/GUcoursedownload/oop/...3:C++ Primer Plus(第6版)中文版,[美]Stephen Prata 著, 人民邮电出版社,2012年7月。教材1

(北大郭炜老师第三周类和对象提高)静态成员

(19分钟):

http://www.icourse163.org/learn/PKU-

1002029030?tid=1450432459#/learn/content?typ

e=detail&id=1214925559

简评:

1、class CRectangle {...};

2、static int nTotalArea; //静态数据成员

static int nTotalNumber; //静态数据成员

3、static void PrintTotal(); //静态成员函数

MOOC视频与简评

Page 18: GU 主讲人:王国军 教授ieee-trustcom.org/faculty/~csgjwang/GUcoursedownload/oop/...3:C++ Primer Plus(第6版)中文版,[美]Stephen Prata 著, 人民邮电出版社,2012年7月。教材1

(北大郭炜老师第三周类和对象提高)成员对象

和封闭类(14分钟):

http://www.icourse163.org/learn/PKU-

1002029030?tid=1450432459#/learn/content?typ

e=detail&id=1214925560

简评:

1、CCar类;

2、CTyre类;

3、CEngine类;

MOOC视频与简评

Page 19: GU 主讲人:王国军 教授ieee-trustcom.org/faculty/~csgjwang/GUcoursedownload/oop/...3:C++ Primer Plus(第6版)中文版,[美]Stephen Prata 著, 人民邮电出版社,2012年7月。教材1

(北大郭炜老师第三周类和对象提高)常对象、常成员函

数和常引用(9分钟):

http://www.icourse163.org/learn/PKU-

1002029030?tid=1450432459#/learn/content?typ

e=detail&id=1214925561

简评:

1、规则、规则和规则!

2、理解、理解和记忆!

3、int GetValue() const { return n; }

int GetValue() { return 2*n; }

MOOC视频与简评

Page 20: GU 主讲人:王国军 教授ieee-trustcom.org/faculty/~csgjwang/GUcoursedownload/oop/...3:C++ Primer Plus(第6版)中文版,[美]Stephen Prata 著, 人民邮电出版社,2012年7月。教材1

下列关于常成员的说法不正确的是哪一个?

常数据成员必须进行初始化,并且不能被更新常数据成员可以在定义时直接初始化(C++11)

常成员函数不可以被非常对象调用

常数据成员通过构造函数的成员初始列表进行初始化

A

B

C

D

提交

单选题 1分

Page 21: GU 主讲人:王国军 教授ieee-trustcom.org/faculty/~csgjwang/GUcoursedownload/oop/...3:C++ Primer Plus(第6版)中文版,[美]Stephen Prata 著, 人民邮电出版社,2012年7月。教材1

(北大郭炜老师第三周类和对象提高)友元(9分钟):

http://www.icourse163.org/learn/PKU-

1002029030?tid=1450432459#/learn/content?typ

e=detail&id=1214925562

简评:

1、class CCar {...};

class CDriver {...};

2、友元函数(全局函数,成员函数)、友元类。

3、对C程序员的“妥协”(“破坏”封装和隐藏的机制)。

MOOC视频与简评

Page 22: GU 主讲人:王国军 教授ieee-trustcom.org/faculty/~csgjwang/GUcoursedownload/oop/...3:C++ Primer Plus(第6版)中文版,[美]Stephen Prata 著, 人民邮电出版社,2012年7月。教材1

6.3&6.4更多MOOC视频:

清华郑莉老师第5章数据的共享与保护-标识符的作用域与

可见性

清华郑莉老师第5章数据的共享与保护-对象的生存期

清华郑莉老师第5章数据的共享与保护-静态数据成员

清华郑莉老师第5章数据的共享与保护-静态函数成员

清华郑莉老师第5章数据的共享与保护-类的友元

清华郑莉老师第5章数据的共享与保护-共享数据的保护

MOOC视频与简评

Page 23: GU 主讲人:王国军 教授ieee-trustcom.org/faculty/~csgjwang/GUcoursedownload/oop/...3:C++ Primer Plus(第6版)中文版,[美]Stephen Prata 著, 人民邮电出版社,2012年7月。教材1

(6.1 类和对象的定义与访问)下列类的定义中正确的是()。(按照C++98标准答题)

class a{int x=0;int y=1;}

class b{int x=0;int y=1;};

class c{int x;int y;}

class d{int x;int y;};

A

B

C

D

提交

单选题 1分

Page 24: GU 主讲人:王国军 教授ieee-trustcom.org/faculty/~csgjwang/GUcoursedownload/oop/...3:C++ Primer Plus(第6版)中文版,[美]Stephen Prata 著, 人民邮电出版社,2012年7月。教材1

(6.1 类和对象的定义与访问)若有以下说明,则在类外使用对象objX成员的正确语句是()。

objX.a=0;

objX.fun1();

objX.fun2();

X::fun1();

A

B

C

D

提交

单选题 1分

Page 25: GU 主讲人:王国军 教授ieee-trustcom.org/faculty/~csgjwang/GUcoursedownload/oop/...3:C++ Primer Plus(第6版)中文版,[美]Stephen Prata 著, 人民邮电出版社,2012年7月。教材1

(6.1 类和对象的定义与访问)在类定义的外部,可以被访问的成员有()。

所有类成员

private或protected的类成员

public的类成员

public或private的类成员

A

B

C

D

提交

单选题 1分

Page 26: GU 主讲人:王国军 教授ieee-trustcom.org/faculty/~csgjwang/GUcoursedownload/oop/...3:C++ Primer Plus(第6版)中文版,[美]Stephen Prata 著, 人民邮电出版社,2012年7月。教材1

(6.1 类和对象的定义与访问)下列关于类和对象的说法中,正确的是( )。

编译器为每个类和类的对象分配内存

类的对象具有成员函数的副本

类的成员函数由类来调用

编译器为每个对象的数据成员分配内存

A

B

C

D

提交

单选题 1分

Page 27: GU 主讲人:王国军 教授ieee-trustcom.org/faculty/~csgjwang/GUcoursedownload/oop/...3:C++ Primer Plus(第6版)中文版,[美]Stephen Prata 著, 人民邮电出版社,2012年7月。教材1

(6.1 类和对象的定义与访问)关于this指针的说法正确的是( )。

this指针必须显式说明

定义一个类后,this指针就指向该类

成员函数拥有this指针

静态成员函数拥有this指针

A

B

C

D

提交

单选题 1分

Page 28: GU 主讲人:王国军 教授ieee-trustcom.org/faculty/~csgjwang/GUcoursedownload/oop/...3:C++ Primer Plus(第6版)中文版,[美]Stephen Prata 著, 人民邮电出版社,2012年7月。教材1

(6.2 构造函数和析构函数)下面对构造函数的不正确描述是()。

用户定义的构造函数不是必须的

构造函数可以重载

构造函数可以有参数,也可以有返回值

构造函数可以设置默认参数

A

B

C

D

提交

单选题 1分

Page 29: GU 主讲人:王国军 教授ieee-trustcom.org/faculty/~csgjwang/GUcoursedownload/oop/...3:C++ Primer Plus(第6版)中文版,[美]Stephen Prata 著, 人民邮电出版社,2012年7月。教材1

(6.2 构造函数和析构函数)下面对析构函数的正确描述是( )。

系统在任何情况下都能正确析构对象

用户必须定义类的析构函数

析构函数没有参数,也没有返回值

析构函数可以设置默认参数

A

B

C

D

提交

单选题 1分

Page 30: GU 主讲人:王国军 教授ieee-trustcom.org/faculty/~csgjwang/GUcoursedownload/oop/...3:C++ Primer Plus(第6版)中文版,[美]Stephen Prata 著, 人民邮电出版社,2012年7月。教材1

(6.2 构造函数和析构函数)构造函数是在( )时被执行的。

建立源程序文件

创建对象

创建类

程序编译时

A

B

C

D

提交

单选题 1分

Page 31: GU 主讲人:王国军 教授ieee-trustcom.org/faculty/~csgjwang/GUcoursedownload/oop/...3:C++ Primer Plus(第6版)中文版,[美]Stephen Prata 著, 人民邮电出版社,2012年7月。教材1

(6.2 构造函数和析构函数)在下列函数原型中,可以作为类Base析构函数的是( )。

void~Base

~Base()

~Base()const

Base()

A

B

C

D

提交

单选题 1分

Page 32: GU 主讲人:王国军 教授ieee-trustcom.org/faculty/~csgjwang/GUcoursedownload/oop/...3:C++ Primer Plus(第6版)中文版,[美]Stephen Prata 著, 人民邮电出版社,2012年7月。教材1

(6.2 构造函数和析构函数)AB是一个类,那么执行语句“AB a(4), b[3], *p;”调用了( )次构造函数。

2

3

4

5

A

B

C

D

提交

单选题 1分

Page 33: GU 主讲人:王国军 教授ieee-trustcom.org/faculty/~csgjwang/GUcoursedownload/oop/...3:C++ Primer Plus(第6版)中文版,[美]Stephen Prata 著, 人民邮电出版社,2012年7月。教材1

(6.2 构造函数和析构函数)下面关于复制构造函数调用的时机,不正确的是( )调用。

访问对象时

对象初始化时

函数具有类类型传值参数时

函数返回类类型值时

A

B

C

D

提交

单选题 1分

Page 34: GU 主讲人:王国军 教授ieee-trustcom.org/faculty/~csgjwang/GUcoursedownload/oop/...3:C++ Primer Plus(第6版)中文版,[美]Stephen Prata 著, 人民邮电出版社,2012年7月。教材1

(6.2 构造函数和析构函数)说明一个类的对象时,系统自动调用( )。

成员函数

构造函数

析构函数

友元函数

A

B

C

D

提交

单选题 1分

Page 35: GU 主讲人:王国军 教授ieee-trustcom.org/faculty/~csgjwang/GUcoursedownload/oop/...3:C++ Primer Plus(第6版)中文版,[美]Stephen Prata 著, 人民邮电出版社,2012年7月。教材1

(6.2 构造函数和析构函数)程序中撤销一个类对象时,系统自动调用( )。

成员函数

构造函数

析构函数

友元函数

A

B

C

D

提交

单选题 1分

Page 36: GU 主讲人:王国军 教授ieee-trustcom.org/faculty/~csgjwang/GUcoursedownload/oop/...3:C++ Primer Plus(第6版)中文版,[美]Stephen Prata 著, 人民邮电出版社,2012年7月。教材1

(6.3 类的其他成员)在下列选项中,( )不是类的成员函数。

构造函数

析构函数

友元函数

复制构造函数

A

B

C

D

提交

单选题 1分

Page 37: GU 主讲人:王国军 教授ieee-trustcom.org/faculty/~csgjwang/GUcoursedownload/oop/...3:C++ Primer Plus(第6版)中文版,[美]Stephen Prata 著, 人民邮电出版社,2012年7月。教材1

(6.3 类的其他成员)下面对友元的错误描述是( )。

关键字friend用于声明友元

一个类中的成员函数可以是另一个类的友元

友元函数访问对象的成员不受访问特性影响

友元函数通过this指针访问对象成员

A

B

C

D

提交

单选题 1分

Page 38: GU 主讲人:王国军 教授ieee-trustcom.org/faculty/~csgjwang/GUcoursedownload/oop/...3:C++ Primer Plus(第6版)中文版,[美]Stephen Prata 著, 人民邮电出版社,2012年7月。教材1

(6.3 类的其他成员)已知类A是类B的友元,类B是类C的友元,则下面选项描述正确的是( )。

类A一定是类C的友元

类C一定是类A的友元

类C的成员函数可以访问类B的对象的任何成员

类A的成员函数可以访问类B的对象的任何成员

A

B

C

D

提交

单选题 1分

Page 39: GU 主讲人:王国军 教授ieee-trustcom.org/faculty/~csgjwang/GUcoursedownload/oop/...3:C++ Primer Plus(第6版)中文版,[美]Stephen Prata 著, 人民邮电出版社,2012年7月。教材1

(6.3 类的其他成员)下述关于类的静态成员的特性中,描述错误的是( )。

说明静态数据成员时前边要加修饰符static

静态数据成员要在类体外定义

引用静态数据成员时,要在静态数据成员前加<类名>和作用域运算符

每个对象有自己的静态数据成员副本

A

B

C

D

提交

单选题 1分

Page 40: GU 主讲人:王国军 教授ieee-trustcom.org/faculty/~csgjwang/GUcoursedownload/oop/...3:C++ Primer Plus(第6版)中文版,[美]Stephen Prata 著, 人民邮电出版社,2012年7月。教材1

(6.3 类的其他成员)若有以下说明,则对n的正确访问语句是( )。

n=1;

Y::n=1;

objY::n=1;

Y->n

A

B

C

D

提交

单选题 1分

Page 41: GU 主讲人:王国军 教授ieee-trustcom.org/faculty/~csgjwang/GUcoursedownload/oop/...3:C++ Primer Plus(第6版)中文版,[美]Stephen Prata 著, 人民邮电出版社,2012年7月。教材1

(6.3 类的其他成员)若有以下类Z说明,则函数fStatic中访问数据a错误的是( )。

void Z::fStatic() {objZ.a =1;}

void Z::fStatic() { a = 1; }

void Z::fStatic() { this->a = 0; }

void Z::fStatic() { Z::a = 0; }

A

B

C

D

提交

单选题 1分

Page 42: GU 主讲人:王国军 教授ieee-trustcom.org/faculty/~csgjwang/GUcoursedownload/oop/...3:C++ Primer Plus(第6版)中文版,[美]Stephen Prata 著, 人民邮电出版社,2012年7月。教材1

(6.3 类的其他成员)若有以下类W说明,则函数fConst的正确定义是( )。

void W::fConst( int&k )const { k = a; }void W::fConst( int&k )const { k = a++; }void W::fConst( int&k )const { cin>> a; }void W::fConst( int&k )const { a = k; }

A

B

C

D

提交

单选题 1分

Page 43: GU 主讲人:王国军 教授ieee-trustcom.org/faculty/~csgjwang/GUcoursedownload/oop/...3:C++ Primer Plus(第6版)中文版,[美]Stephen Prata 著, 人民邮电出版社,2012年7月。教材1

(6.3 类的其他成员)若有以下类T说明,则函数fFriend的错误定义是( )。

void fFriend( T &objT, int k ) { objT.i = k; }void fFriend( T &objT, int k ) { k = objT.i; }void T::fFriend( T &objT, int k ) { k += objT.i; }void fFriend( T &objT, int k ) { objT.i += k; }

A

B

C

D

提交

单选题 1分

Page 44: GU 主讲人:王国军 教授ieee-trustcom.org/faculty/~csgjwang/GUcoursedownload/oop/...3:C++ Primer Plus(第6版)中文版,[美]Stephen Prata 著, 人民邮电出版社,2012年7月。教材1

(6.4 类的包含)若class B中定义了一个class A的类成员A a,则关于类成员的正确描述是( )。

在类B的成员函数中可以访问A类的私有数据成员在类B的成员函数中可以访问A类的保护数据成员类B的构造函数可以调用类A的构造函数进行数据成员初始化类A的构造函数可以调用类B的构造函数进行数据成员初始化

A

B

C

D

提交

单选题 1分

Page 45: GU 主讲人:王国军 教授ieee-trustcom.org/faculty/~csgjwang/GUcoursedownload/oop/...3:C++ Primer Plus(第6版)中文版,[美]Stephen Prata 著, 人民邮电出版社,2012年7月。教材1

(6.4 类的包含)下列关于类的包含描述正确的是( )。

可以使用赋值语句对对象成员进行初始化

可以使用“参数初始式”调用成员类的构造函数初始化对象成员

被包含类可以访问包含类的成员

首先执行自身构造函数,再调用成员类的构造函数

A

B

C

D

提交

单选题 1分

Page 46: GU 主讲人:王国军 教授ieee-trustcom.org/faculty/~csgjwang/GUcoursedownload/oop/...3:C++ Primer Plus(第6版)中文版,[美]Stephen Prata 著, 人民邮电出版社,2012年7月。教材1

习题一

作 业