笔试强训选择题day9,10

day 9

函数声明

笔试强训选择题day9,10_第1张图片
函数参数是引用,那我们传int 类型的变量就行了
C、D选项,a不是指针无法解引用
B选项,不需要传地址

new和delete

笔试强训选择题day9,10_第2张图片
笔试强训选择题day9,10_第3张图片
笔试强训选择题day9,10_第4张图片
笔试强训选择题day9,10_第5张图片
此题是new T[] ,会调用N次构造函数
但使用的是delete直接删除所指向的空间

这种操作不正确,应该匹配使用

动态内存分配

笔试强训选择题day9,10_第6张图片
malloc申请的空间一定是在堆上,但new不一定,要根据使用者,但默认调用malloc申请的空间还是在堆上

静态成员变量

笔试强训选择题day9,10_第7张图片
静态成员变量:
1.所有对象共享的,并不属于具体的某个对象
2.在类中声明,然后需要在类外单独进行定义
3.一定不能在构造函数初始化列表的位置初始化
4.在类外访问静态成员变量时:对象.静态成员变量或着类名::静态成员变量

笔试强训选择题day9,10_第8张图片

类成员的访问属性

笔试强训选择题day9,10_第9张图片
class默认访问权限时private
struct默认访问权限时public

运算符的重载

笔试强训选择题day9,10_第10张图片

每个非静态的成员函数都有一个隐藏的this指针
一元运算符:该元素只需要有一个参数,例如:++ –

前置++:Date& operator++()
后置++:Date operator++(int)

构造和析构

笔试强训选择题day9,10_第11张图片

new的使用

笔试强训选择题day9,10_第12张图片
创建对象时不会调用析构函数
在这里插入图片描述

模板的参数列表

笔试强训选择题day9,10_第13张图片
常见的模板声明
笔试强训选择题day9,10_第14张图片
有多个参数时,每个参数之前都必须加上class或typename

1.没参数
2.没class 或者typename
3.少了一个
5.少了一个
8.没关键字

day 10

内联函数

笔试强训选择题day9,10_第15张图片
内联函数:在C++中被inline关键字修饰的函数,在编译阶段,编译器会将函数调用的位置用函数体直接替换。少了函数创建期间,函数压栈,创建栈帧的操作,提高运行效率。
但inline是建议性关键字,建议编译器把这个函数当成函数体操作,编译器自行判断该函数是否够短,频繁调用,没有嵌套递归等复杂操作。

B选项:inline与静态变量没什么关系

运算符重载

笔试强训选择题day9,10_第16张图片
记住以下四个运算符即可
笔试强训选择题day9,10_第17张图片

拷贝构造函数特点

笔试强训选择题day9,10_第18张图片
拷贝构造函数也是一种构造函数,所以函数名与类名相同。
单参的,而且是对本类对象的引用,建议用const修饰
用已经存在的对象创建新的对象

A选项,构造函数是没有返回值的
C选项,编译器默认生成拷贝构造函数是公有的

类的常成员函数

笔试强训选择题day9,10_第19张图片
注意:C选项的const实际修饰的是this指针,表明在该成员函数中,不能修改非静态成员变量

重载函数调用依据

笔试强训选择题day9,10_第20张图片
与函数类型无关

调用构造函数次数

笔试强训选择题day9,10_第21张图片
a[5]:代表着5个Myclass对象的一个数组,需要调用5次Myclass类的构造函数
b:史记为一个指针数组,该数组中的每个元素都是一个Myclass*,里面放的都是地址,所以创建的时候不会调用构造函数

  • List item

初始化列表初始次序

笔试强训选择题day9,10_第22张图片
在初始化列表中初始化成员的次序:与该成员在初始化列表中的先后次序没有关系,真正的初始化次序与成员变量在类中声明的先后次序保持一致

类的大小

笔试强训选择题day9,10_第23张图片
类大小的计算方式:将类中非静态成员变量大小相加,注意内存对齐,与结构体大小计算方式类似。
与成员函数没有关系,类中只存成员变量,成员函数存在于代码段。

注意:空类大小不为0,在主流编译器将空类的大小设为1

阅读代码题

笔试强训选择题day9,10_第24张图片
笔试强训选择题day9,10_第25张图片

笔试强训选择题day9,10_第26张图片
a类型:const int
&a类型:const int*
所以需要强转(int*)

注意:C++中被const修饰的变量,该变量已经是一个常量了,还具有替换的作用。
在编译器编译代码,在程序中看到对常量内容读取时,会直接使用常量中的内用替换该常量

你可能感兴趣的:(c++,数据结构,c语言)