C/C++笔试易错题+图解知识点(二)—— C++部分(持续跟新中)

news2024/11/25 12:57:35

目录

1.构造函数初始化列表

1.1 构造函数初始化列表与函数体内初始化区别

1.2 必须在初始化列表初始化的成员

2. 引用初始化以后不能被改变,指针可以改变所指的对象


1.构造函数初始化列表

有一个类A,其数据成员如下: 则构造函数中,成员变量一定要通过初始化列表来初始化的是:______。

class A {
...
private:
    int a;
public:
    const int b;
    float* &c;
    static const char* d;
    static double* e;
};

A. a b c

B. b c

C. b c d e

D. b c d

E. b

F. c

答案:B

知识点:

1.1 构造函数初始化列表与函数体内初始化区别

一个类,其包含一个类类型成员,对于它的构造函数,如果在函数体内初始化,会先调用其类类型成员的默认构造函数,在调用赋值运算符,而在构造函数初始化时会直接调用它的拷贝构造函数进行初始化

函数体类初始化:

#include <iostream>

class B {
public:
	B() { std::cout << "B defualt construct" << '\n'; }
	B(int t) : _t(t) { std::cout << "B construct" << '\n'; }
	B(const B& b) : _t(b._t) { std::cout << "B copy construct" << '\n'; }
	B& operator=(const B& b) {
		_t = b._t;
		std::cout << "B assign operator"<< '\n';
		return *this;
	}
private:
	int _t = 0;
};
class A {
public:
	A() { std::cout << "A defualt construct" << '\n'; }
	A(const B& b){ 
		puts("---------------------");
		_b = b;
		std::cout << "A construct" << '\n'; 
	}

	A(const A& a) : _b(a._b) { std::cout << "A copy construct" << '\n'; }
	A& operator=(const A& a) {
		_b = a._b;
		std::cout << "A assign operator" << '\n';
		return *this;
	}
private:
	B _b;
};
int main() {
	B b(1);
	A a(b);
}

初始化列表初始化:

#include <iostream>

class B {
public:
	B() { std::cout << "B defualt construct" << '\n'; }
	B(int t) : _t(t) { std::cout << "B construct" << '\n'; }
	B(const B& b) : _t(b._t) { std::cout << "B copy construct" << '\n'; }
	B& operator=(const B& b) {
		_t = b._t;
		std::cout << "B assign operator"<< '\n';
		return *this;
	}
private:
	int _t = 0;
};
class A {
public:
	A() { std::cout << "A defualt construct" << '\n'; }
	A(const B& b) : _b(b) { 
		puts("---------------------");
		std::cout << "A construct" << '\n';
	}
	/*A(const B& b){ 
		puts("---------------------");
		_b = b;
		std::cout << "A construct" << '\n'; 
	}*/

	A(const A& a) : _b(a._b) { std::cout << "A copy construct" << '\n'; }
	A& operator=(const A& a) {
		_b = a._b;
		std::cout << "A assign operator" << '\n';
		return *this;
	}
private:
	B _b;
};
int main() {
	B b(1);
	A a(b);
}

1.2 必须在初始化列表初始化的成员

• const修饰的成员变量

• 引用类型成员

• 类类型成员,且该类没有默认构造函数(由1.1内容可得)

2. 引用初始化以后不能被改变,指针可以改变所指的对象

int main() {
	int a = 10;
	int& ref = a;     
	int b = 20;    
	ref = b;
	std::cout << "a:" << a << " ref:" << ref << " b:" << b; 
     //output:a:20 ref:20 b:20
}

3 构造函数与析构函数系列题

3.1构造函数与析构函数的调用次数

C++语言中,类ClassA的构造函数和析构函数的执行次数分别为()

ClassA *pclassa=new ClassA[5];
delete pclassa;

A. 5,1

B. 1,1

C. 5,5

D. 1,5

答案:A

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1091561.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

vue项目打包,使用externals抽离公共的第三方库

封装了一个插件&#xff0c;用来vue打包抽离公共的第三方库&#xff0c;使用unplugin进行插件开发&#xff0c;vite对应的功能使用了vite-plugin-externals进行二次开发 github地址 npm地址 hfex-auto-externals-plugin 自动注入插件,使用 unplugin 和 html-webpack-plugin进…

01 | Spring Data JPA 初识

Spring Boot 和 Spring Data JPA 的 Demo演示 我们利用 JPA Spring Boot 简单做一个 RESTful API 接口&#xff0c;方便你来了解 Spring Data JPA 是干什么用的&#xff0c;具体步骤如下。 第一步&#xff1a;利用 IDEA 和 SpringBoot 2.3.3 快速创建一个案例项目。 点击“…

2.MySQL表的操作

个人主页&#xff1a;Lei宝啊 愿所有美好如期而遇 表的操作 (1)表的创建 CREATE TABLE table_name ( field1 datatype, field2 datatype, field3 datatype ) character set 字符集 collate 校验规则 engine 存储引擎; 存储引擎的不同会导致创建表的文件不同。 换个引擎。 t…

【C语言】结构体、位段、枚举、联合(共用体)

结构体 结构&#xff1a;一些值的集合&#xff0c;这些值称为成员变量。结构体的每个成员可以是不同类型的变量&#xff1b; 结构体声明&#xff1a;struct是结构体关键字&#xff0c;结构体声明不能省略struct&#xff1b; 匿名结构体&#xff1a;只能在声明结构体的时候声…

伦敦银单位转换很简单

伦敦银源自于英国伦敦的电子化的白银投资方式&#xff0c;高杠杆和高收益的它的基本属性&#xff0c;但有别于国内大家所熟悉的投资品种&#xff0c;伦敦银在交易过程中有很多不一样的地方&#xff0c;需要大家地去留意。 比如伦敦银的计价单位是盎司&#xff0c;而且具体来说…

【Qt上位机】打开本地表格文件并获取其中全部数据

前言 其实本文所实现的功能并非博主要实现的全部功能&#xff0c;只是全部功能中的一小部分&#xff0c;这里只是为了记录一下实现方法&#xff0c;防止后续忘记&#xff0c;仅供参考。 文章目录 一、实现效果二、UI设计三、程序设计3.1 选择本地表格文件3.2 获取表格总行列数3…

百度Echarts实现饼图,较官网示例更多项显示

本来是想直接使用官网示例修改几个地方就用起来&#xff0c;但是用户希望一眼就看到百分占比&#xff0c;但是官网示例没有使用lable的&#xff0c;找了半天都没找到&#xff0c;后来通过对比其他饼图发现lable这个项&#xff0c;再次记录一下 首先看效果图&#xff1a; 2. 代码…

国海证券:36氪(KRKR):新经济内容平台龙头,多元变现可期

来源&#xff1a;猛兽财经 作者&#xff1a;猛兽财经 猛兽财经获悉&#xff0c;国海证券今日发布了关于36氪的新经济内容平台龙头&#xff0c;多元变现可期研报。国海证券主要内容如下&#xff1a;1、新经济产业发展迅猛&#xff0c;36氪定位为以媒体为旗舰的新经济服务集团&a…

下载安装Ipa Guard

下载安装Ipa Guard 可以前往ipaguard工具官网下载&#xff0c;工具是免费下载&#xff0c;免费体验使用的。下载地址是https://www.ipaguard.com。 下载后解压工具便ok了&#xff0c;工具是绿色软件&#xff0c;无需其他安装流程。双击Ipa Guard.exe 启动ipaguard。 ipaguard…

【问题思考】如何通过参数式求出方向向量?(待深入本质)

问题 今天在做23李六第二套的时候看到了一道题&#xff1a; 答案里面说的直接再加一个yy和上面的两个方程就凑成了三个方程&#xff08;x关于y的&#xff0c;y关于y的&#xff0c;z关于y的&#xff0c;最后每个方程都对y求导&#xff0c;再代入y1&#xff0c;就有了方向向量&…

Netapp数据恢复—Netapp存储误删除lun的数据恢复过程

Netapp存储数据恢复环境&#xff1a; 北京某公司一台netAPP存储&#xff0c;72块SAS硬盘划分了若干个lun。 Netapp存储故障&#xff1a; 工作人员误操作删除了12个lun。 Netapp存储数据恢复过程&#xff1a; 1、将故障存储中所有磁盘编号后取出&#xff0c;以只读方式做全盘镜…

C++入门指南:类和对象总结笔记(下)

C入门指南:类和对象总结笔记&#xff08;下&#xff09; 一、深度剖析构造函数1.1 构造函数体赋值1.2 初始化列表1.3 explicit关键字 二、static成员2.1 概念2.2 特性 三、友元3.1 友元函数3.2 友元类 四、 内部类4.1 概念4.2 特征 五、拷贝对象时的一些编译器优化六、深度剖析…

论文浅尝 | 深度神经网络的模型压缩

笔记整理&#xff1a;闵德海&#xff0c;东南大学硕士&#xff0c;研究方向为知识图谱 链接&#xff1a;https://arxiv.org/abs/1412.6550 动机 提高神经网络的深度通常可以提高网络性能&#xff0c;但它也使基于梯度的训练更加困难&#xff0c;因为更深的网络往往更加强的非线…

​人机交互中的反馈与前馈

人机交互中的反馈和前馈&#xff0c;是指在用户与机器进行交互的过程中&#xff0c;人机二者对输入的信息做出回应的方式。 反馈&#xff1a;反馈是从机器到人的信息传递过程&#xff0c;主要用于告知用户他们的操作或请求的结果。当用户执行某个操作时&#xff0c;机器通过适当…

nginx生成https 证书-基于docker-compose

申请的证书存放nginx的docker-compose.yml同一目录 [rootk8s-node1 nginx]# cat docker-compose.yml version: 2 services:nginx:container_name: nginximage: nginxrestart: alwaysvolumes:- "./default.conf:/etc/nginx/conf.d/default.conf"- "./nginx.conf…

初级问题 程序中的变量是指什么?中级问题 把若干个数据沿直线排列起来的数据结构叫作什么?高级问题 栈和队列的区别是什么?

目录 1.深刻主题 2.描写复杂人物 初级问题 程序中的变量是指什么&#xff1f; 中级问题 把若干个数据沿直线排列起来的数据结构叫作什么&#xff1f; 高级问题 栈和队列的区别是什么&#xff1f; 计算机图形学&#xff08;有效边表算法&#xff09; 介绍一下计算机图形学…

LoRa技术在实际应用中可能遇到的问题和挑战,以及解决方案

LoRa技术在物联网和其他应用领域中取得了显著的成功&#xff0c;但在实际应用中仍然面临一些问题和挑战。以下是一些可能的问题和挑战&#xff0c;以及针对这些挑战的一些建议解决方案。 1. 频谱管理问题 问题&#xff1a; 由于LoRa使用公共频谱&#xff0c;频道拥塞和干扰可…

java中转义字符的源码数据格式,内存存储数据格式和转换json后的数据格式

转义字符在内存存储格式 于 转换json后发送的数据格式是不一样的。因为json对于java来说可以看成一种源码&#xff0c;那就需要以源码的表示格式输出。 要注意转义字符在每种语言的源码的数据格式 和 内存存储的数据格式。 例&#xff1a;\n 换行转义字符 1.在java源码中为\…

一些基本的 AFL++ 插桩模式操控方式 (还有 DEBUG 方式)

在 afl-cc.c 1807 行&#xff0c;可以看到如下代码 " You can also use the old environment variables instead:\n" " AFL_LLVM_USE_TRACE_PC: use LLVM trace-pc-guard instrumentation\n" " AFL_LLVM_CALLER: use single context sensitive covera…

基于文心一言打造AI应用,律品汇助推公共法律服务惠及中国乡村

“宅基地可以买卖吗&#xff1f;” “邻居家建房子占了我的地&#xff0c;我该怎么办&#xff1f; “我给房东签了定金&#xff0c;现在我不打算租这个房子了&#xff0c;对方要不要退我定金啊&#xff1f;” 这些问题&#xff0c;仅仅是云南某村居民诸多法律咨询内容的一角&am…