C/C++笔试易错题+图解知识点(二)—— C++部分

news2024/11/20 7:03:38

目录

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
}

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

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

相关文章

2023年中国招投标行业研究报告

第一章行业概况 1.1 招投标定义 招标和投标&#xff0c;作为商品交易的关键环节&#xff0c;代表着一种高度成熟的商业实践&#xff0c;它涵盖了商品经济的多个层面&#xff0c;借助技术、经济学方法以及市场竞争机制&#xff0c;形成了有序而高效的交易方式。招标和投标是国…

分享一下开发回收废品小程序的步骤

随着人们环保意识的不断提高&#xff0c;回收利用已成为日常生活中不可或缺的一部分。回收小程序作为一种便捷、高效的回收方式&#xff0c;越来越受到人们的关注和喜爱。本文将探讨回收小程序的意义和作用&#xff0c;设计理念、功能特点、使用流程以及推广策略&#xff0c;并…

M2芯片的Mac上安装Linux虚拟机——提前帮你踩坑

M2芯片的Mac上安装Linux虚拟机——提前帮你踩坑 1. 前言1.1 系统说明1.2 Linux系统选择——提前避坑1.1 下载vmware_fusion1.1.1 官网下载1.1.2 注册 CAPTCHA验证码问题1.1.3 产品说明 1.2 下载操作系统镜像1.2.1 下载centos&#xff08;如果版本合适的&#xff09;1.2.2 下载…

C++下载器程序:如何使用cpprestsdk库下载www.ebay.com图片

本文介绍了如何使用C语言和cpprestsdk库编写一个下载器程序&#xff0c;该程序可以从www.ebay.com网站上下载图片&#xff0c;并保存到本地文件夹中。为了避免被网站屏蔽&#xff0c;我们使用了亿牛云爬虫代理服务提供的代理IP地址&#xff0c;以及多线程技术提高下载效率。 首…

02 | Spring Data Common 之 Repository 如何全面掌握?

通过上一课时&#xff0c;我们知道了 Spring Data 对整个数据操作做了很好的封装&#xff0c;其中 Spring Data Common 定义了很多公用的接口和一些相对数据操作的公共实现&#xff08;如分页排序、结果映射、Autiting 信息、事务等&#xff09;&#xff0c;而 Spring Data JPA…

mysql面试题46:MySQL中datetime和timestamp的区别

该文章专注于面试,面试只要回答关键点即可,不需要对框架有非常深入的回答,如果你想应付面试,是足够了,抓住关键点 面试官:MySQL中DATETIME和TIMESTAMP的区别 在MySQL中,DATETIME和TIMESTAMP是两种用于存储日期和时间的数据类型。虽然它们都可以用于存储日期和时间信息…

Java版本+企业电子招投标系统源代码+支持二开+招投标系统+中小型企业采购供应商招投标平台

功能模块&#xff1a; 待办消息&#xff0c;招标公告&#xff0c;中标公告&#xff0c;信息发布 描述&#xff1a; 全过程数字化采购管理&#xff0c;打造从供应商管理到采购招投标、采购合同、采购执行的全过程数字化管理。通供应商门户具备内外协同的能力&#xff0c;为外部供…

大数计算:e^1000/300!

1.问题:大数计算可能超出数据类型范围 当单独计算 ,因为 e^{700} \approx 1.01432*e304" class="mathcode" src="https://latex.csdn.net/eq?e%5E%7B1000%7D%20%3E%20e%5E%7B700%7D%20%5Capprox%201.01432*e304">,double的最大取值为1.79769…

【NeRF】2、NeRF 首篇经典论文介绍(ECCV2020)

文章目录 一、背景二、方法2.1 神经辐射场场景表达3.2 使用辐射场来进行立体重建3.3 优化神经辐射场3.3.1 位置编码3.3.2 分层立体采样3.3.3 具体实现细节 三、效果 论文&#xff1a;Representing Scenes as Neural Radiance Fields for View Synthesis 代码&#xff1a;https…

攻防世界题目练习——Crypto密码新手+引导模式(二)(持续更新)

题目目录 1. 转轮机加密2. easychallenge 上一篇&#xff1a;攻防世界题目练习——Crypto密码新手引导模式&#xff08;一&#xff09;&#xff08;持续更新&#xff09; 1. 转轮机加密 首先了解一下轮转机加密吧。 传统密码学(三)——转轮密码机 题目内容如下&#xff1a; …

通讯录(C语言版)

用c语言实现一个通讯录 功能&#xff1a;.添加、删除、查找、更改、显示、排序联系人 内存存储方式&#xff1a;结构体数组 1.打印菜单&#xff0c;各个功能分别用函数实现&#xff0c;将函数声明放在头文件中。 2.定义联系人信息&#xff0c;将联系人信息与count&#xff…

云渲染是什么?云渲染怎么用?

云渲染的出现为影视动画、建筑设计、游戏开发等领域提供了很大的便利&#xff0c;为公司或者个人节约了大量的渲染部分时间&#xff0c;大大的提高了工作效率。哪什么是云渲染&#xff1f;云渲染怎么用呢&#xff1f;我们一起来看看。 云渲染是什么&#xff1f; 云渲染是一种…

高级深入--day30

Scrapy Shell Scrapy终端是一个交互终端,我们可以在未启动spider的情况下尝试及调试代码,也可以用来测试XPath或CSS表达式,查看他们的工作方式,方便我们爬取的网页中提取的数据。 如果安装了 IPython ,Scrapy终端将使用 IPython (替代标准Python终端)。 IPython 终端与其…

QDir实践

现在有多个文件&#xff0c;路径为&#xff1a; a\xxx\kmd_config\c.json 其中xxx是变量 startcalc,,,,,, 目标&#xff1a; 访问每一个json文件 实例&#xff1a; QString app_path QApplication::applicationDirPath() "/app";QDir dir(app_path);QStringLi…

NewStarCTF2023公开赛道-压缩包们

题目提示是压缩包 用010editor打开&#xff0c;不见PK头&#xff0c;补上50 4B 03 04 14 00 00 00 将文件改成.zip后缀&#xff0c;打开&#xff0c;解压出flag.zip 尝试解压&#xff0c;报错 发现一串base64编码 SSBsaWtlIHNpeC1kaWdpdCBudW1iZXJzIGJlY2F1c2UgdGhleSBhcmUgd…

【LeetCode刷题笔记】二分查找

1539. 第 k 个缺失的正整数 解题思路&#xff1a; 1. 二分 &#xff0c;一个严格升序 正整数 数组在没有数字缺失的情况下满足&#xff1a; nums[i] i 1 &#xff0c;如果有缺失&#xff0c;则每个 下标 i 上的数字前面缺失的正整数个数为&#xff1a; nums[i] - (i 1) &am…

ROS 摄像头标定-camera_calibration

摄像头这种精密仪器对光学器件的要求较高&#xff0c;由于摄像头内部与外部的一些原因&#xff0c;生成的物体图像往往会发生畸变&#xff0c;为了避免数据源造成的误差&#xff0c;需要针对摄像头的参数进行标定。 ROS官方提供了用于双目和单目摄像头标定的功能包—camera_cal…

单链表---结构体实现

定义 链表称为线性表的链式存储&#xff0c;顺序表逻辑上相邻的数据&#xff0c;存储位置也相邻。链表逻辑上相邻的数据&#xff0c;存储位置是随机分布在内存的各个位置上的。 故 对于每一个结点&#xff0c;定义的结构体是&#xff1a; typedef struct _LinkNode {int d…

存档&改造【06】Apex-Fancy-Tree-Select花式树的使用误删页数据还原(根据时间节点导出导入)

之前一直想实现厂区-区域-产线之间的级联选取&#xff0c;于是导入插件Apex-Fancy-Tree-Select花式树 存档&#xff06;改造【03】Apex-Fancy-Tree-Select花式树的导入-CSDN博客 现在则是在Oracle Apex中的应用 花式书级联列表展示厂区-区域-产线 想要实现的效果 由厂区>…

Shopee活动报错怎么办?Shopee活动类型怎么选择?-站斧浏览器

有时候&#xff0c;在同步虾皮活动的过程中&#xff0c;您可能会遇到一些问题或报错信息。遇到这种情况要怎么办&#xff0c;Shopee活动类型怎么选择&#xff1f; Shopee活动报错怎么办&#xff1f; 下面是几种常见的问题及其解决方法&#xff1a; 1、网络连接问题&#xff…