918选择和填空题
这份文档就是对c++中常见易错的选择题进行归类整理,按照蓝豹子的目录进行归类, 文档中提及的蓝豹子就是《C++程序设计思想与方法》慕课版第3版 人民邮电出版社
持续更新中ing
1.绪论
2.程序的基本组成
常量
这里主要原因是常量字符串必须初始化,具体解释可以开蓝豹子p24有一句话“const表示所定义的字符…”
数据类型
这题蓝豹子没有,但是字符串处理函数比较常见,可以积累。
赋值运算符
蓝豹子p30,但没有讲单目运算符是什么,可是这个也比较常见
单目运算是指运算符包括算术运算符、逻辑运算符、位逻辑运算符、位移运算符、关系运算符。:- = + 双目运算符:-- == ++ 三目运算符,又称条件运算符,也叫多目运算符: b = (a > c) ? a : c;
3.分支程序设计
4.循环程序设计
5.数组
6.函数
函数调用
蓝豹子p109:实际参数和形式参数是一一对应的,它们的个数,排列顺序要完全相同,类型要完全兼容。
函数变量
没有在蓝豹子里找到:在C++程序中,如果我没没有对函数的类型进行说明的话,那么函数的默认类型是int类型的,也就是说函数必须返回一个int型的返回值。
7.指针
8.结构体
9.模块化开发
这题蓝豹子没有讲
10.创建新的类型
类的定义
蓝豹子p224中间有一段的最后一句话:如果没有指明访问特性,该成员默认认为是private。
对象的使用
蓝豹子没有讲那么深,p228动态对象那里有提到一句
第一题:a[3]调用3次,p是类指针。
类
指
针
要
分
配
了
动
态
空
间
才
调
用
构
造
函
数
的
\textcolor{red}{类指针要分配了动态空间才调用构造函数的}
类指针要分配了动态空间才调用构造函数的 第二题:a,b各一次,c调用3次,p是类指针。
构造函数
蓝豹子p232
蓝豹子没有提及p233有提一句
这是两种常见的写构造函数方式
拷贝构造函数
蓝豹子p234:复制构造函数以一个同类对象的常量引用作为参数。
蓝豹子p234
析构函数
蓝豹子p235:在C++中,析构函数的名字是“~类名”。它没有参数也没有返回值。
常量成员函数
蓝豹子p243最后一段开头第一句:常成员函数需要在声明和定义的时候在函数头部的结尾加上 const 关键字
静态成员函数
蓝豹子p245:静态成员函数不能访问一般的数据成员。而只能访问静态数据成员或其他静态成员函数。
补充换成问答题:
为什么静态成员函数只能访问静态成员变量。
答:1.静态成员函数只属于类本身,随着类的加载而存在,不属于任何对象,是独立存在的
2.
非
静
态
成
员
当
且
仅
当
实
例
化
对
象
之
后
才
存
在
,
静
态
成
员
函
数
产
生
在
前
,
非
静
态
成
员
函
数
产
生
在
后
,
故
不
能
访
问
\textcolor{red}{2.非静态成员当且仅当实例化对象之后才存在,静态成员函数产生在前,非静态成员函数产生在后,故不能访问}
2.非静态成员当且仅当实例化对象之后才存在,静态成员函数产生在前,非静态成员函数产生在后,故不能访问
3.内部访问静态成员用self::,而访问非静态成员要用this指针,静态成员函数没有this指针,故不能访问。
11.运算符重载
蓝豹子p255:运算符的重载不能改变运算符的运算对象数。
12.组合与继承
蓝豹子没有提及
多态性与虚函数
蓝豹子p297倒数第二段:当基类的指针指向不同的派生类的对象时,就会调用不同的函数,这样就实现了多态性
这题考的是动态联编,蓝豹子里面没有提及,但可以了解一下
动态联编需要满足三个条件: 1 类之间满足兼容赋值规则 2 声明虚函数 3 使用类的指针或者引用访问虚函数或者通过成员函数调用虚函数
这题考的是静态联编,蓝豹子里面没有提及
虚基类
蓝豹子没有提及
纯虚函数和抽象类
蓝豹子p301:如果一个类至少含有一个纯虚函数,则被称为抽象类。
13.模板
14.输入输出
格式化输入/输出
这题蓝豹子没有写,可以积累,蓝豹子只写了setw,在p325可以重点看看
1:如果一个类至少含有一个纯虚函数,则被称为抽象类。
13.模板
14.输入输出
格式化输入/输出
[外链图片转存中…(img-7wktTPQN-1638711434469)]
这题蓝豹子没有写,可以积累,蓝豹子只写了setw,在p325可以重点看看
[外链图片转存中…(img-R4bk4Rqa-1638711434470)]
蓝豹子p326那个表的最后一个:setfill 设置填充字符
|