【C/C++】错题记录(六)

题目一

e前必须有数字,e后必须为整数。

并不完全按照科学计数法的规定来(e前的数字可以任意大小,并不是只能是大于等于1小于10)。

题目二

C++不支持嵌套函数定义。

在 C++中,函数的定义必须在全局作用域或者类作用域中进行,不能在另一个函数内部定义函数。

例如以下代码在 C++中是错误的:

cpp 复制代码
void outerFunction() {
    void innerFunction() {
        // 函数体
    }
}

然而,C++支持在函数内部声明和定义函数指针类型的变量,也可以使用 lambda 表达式来实现类似嵌套函数的功能,在一定程度上可以模拟一些嵌套函数的行为特性。但这与真正的嵌套函数定义是不同的。

题目三

参考答案:

本问题涉及到两个方面:

  1. C++继承体系中构造函数的调用顺序。
  2. 构造函数中调用虚函数问题。

C++继承体系中,初始化时构造函数的调用顺序如下 :

(1)任何虚拟基类的构造函数按照他们被继承的顺序构造

(2)任何非虚拟基类的构造函数按照他们被继承的顺序构造

(3)任何成员对象的函数按照他们声明的顺序构造

(4)类自己的构造函数

据此可知 A*p = newB;先调用A类的构造函数再调用B类的构造函数。

构造函数中调用虚函数,虚函数表现为该类中虚函数的行为,即在父类构造函数中调用虚函数,虚函数的表现就是父类定义的函数的表现。

why?原因如下: 假设构造函数中调用虚函数,表现为普通的虚函数调用行为,即虚函数会表现为相应的子类函数行为,并且假设子类存在一个成员变量int a;子类定义的虚函数的新的行为会操作a变量,在子类初始化时根据构造函数调用顺序会首先调用父类构造函数,那么虚函数回去操作a,而因为a是子类成员变量,这时a尚未初始化,这是一种危险的行为,作为一种明智的选择应该禁止这种行为。

所以虚函数会被解释到基类而不是子类。 据此可以得到答案C正确。

题目四

记录一下,原理是会的,就是算错数了......

题目五(强制类型转换的优先级)

强制类型转换的优先级高于+ - * /

题目六(虚函数指针)

类的大小只与成员变量(非static数据成员变量)和虚函数指针有关,还要考虑到对齐. 所以类A的大小:4个字节(int _a)+4个字节(指向虚函数的指针) = 8个字节。

题目七(抽象类知识点)

抽象类概念

在虚函数的后面写上 =0 ,则这个函数为纯虚函数。包含纯虚函数的类叫做抽象类(也叫接口类),抽象类不能实例化出对象。

派生类继承后也不能实例化出对象,只有重写纯虚函数,派生类才能实例化出对象。

纯虚函数规范了派生类必须重写,另外纯虚函数更体现出了接口继承。

cpp 复制代码
class Car
{
	public:
	virtual void Drive() = 0;
};

class Benz :public Car
{
public:
	 virtual void Drive()
	 {
	 	cout << "Benz-舒适" << endl;
	 }
};

class BMW :public Car
{
public:
	 virtual void Drive()
	 {
	 	cout << "BMW-操控" << endl;
	 }
};

void Test()
{
	Car* pBenz = new Benz;
	pBenz->Drive();
	Car* pBMW = new BMW;
	pBMW->Drive();
}

题目八(整体提升)

参考答案:C

%02x表示输出最少2位,不足补0. 第一个ch=-1,负数拓展到32位需要补1,所以是ffffffff 第二个先转换为无符号数ff(255), 正数拓展补0,由于最少输出2位,所以是ff。

整体提升

  1. 有符号整数提升是按照变量的数据类型的符号位来提升的。
  2. 无符号整数提升,高位补0。
相关推荐
王哈哈^_^25 分钟前
【数据集】【YOLO】目标检测游泳数据集 4481 张,溺水数据集,YOLO河道、海滩游泳识别算法实战训练教程。
人工智能·算法·yolo·目标检测·计算机视觉·分类·视觉检测
巴里巴气28 分钟前
第73题 矩阵置零
线性代数·算法·矩阵
voice6701 小时前
密码学实验二
算法·密码学·哈希算法
Blossom.1182 小时前
把AI“编”进草垫:1KB决策树让宠物垫自己报「如厕记录」
java·人工智能·python·算法·决策树·机器学习·宠物
寂静山林2 小时前
UVa 10989 Bomb Divide and Conquer
算法
郭源潮12 小时前
《Muduo网络库:实现TcpServer类终章》
服务器·网络·c++·网络库
兮山与2 小时前
算法23.0
算法
共享家95273 小时前
数独系列算法
算法·深度优先
liebe1*14 小时前
C语言程序代码(四)
c语言·数据结构·算法
进击的圆儿4 小时前
递归专题4 - 网格DFS与回溯
数据结构·算法·递归回溯