【C++精简版回顾】6.构造函数

news2024/10/7 16:24:05

一。类的四种初始化方式

1.不使用构造函数初始化类

        使用函数引用来初始化类

class MM {
public:
	string& getname() {
		return name;
	}
	int& getage() {
		return age;
	}
	void print() {
		cout << "name: " << name << endl << "age: " << age << endl;
	}
private:
	string name;
	int age;
};
int main() {
	MM mm;
	mm.getname()= "wangjianghui";
	mm.getage()= 25;
	mm.print();
	return 0;
}

 结果:

注意:

        函数引用是:

        正确: int& getage() { return age;}//直接引用私有属性直接修改他。

        错误: int& getage(int age) { return age;}

2.使用构造函数初始化类

使用构造函数初始化类,就算不写构造函数,C++也会自己有一个默认构造函数,类似下面

MM() {}
class MM {
public:
	MM() { cout<<"默认构造函数已经使用" << endl; }
	MM(string a, int b) {
		name = a;
		age = b;
	}
	void print() {
		cout << "name: " << name << endl << "age: " << age << endl;
	}
private:
	string name;
	int age;
};
int main() {
	MM mm("wangjianghui",25);
	mm.print();
	cout << "使用默认构造函数" << endl;
	MM mm2;
	return 0;
}

3.拷贝构造函数

class MM {
public:
	MM() {}
	MM(string a, int b) {
		name = a;
		age = b;
	}
	MM(MM& object) {
		name = object.name;
		age = object.age;
	}
	void print() {
		cout << "name: " << name << endl << "age: " << age << endl;
	}
private:
	string name;
	int age;
};
int main() {
	MM mm("wangjianghui",25);
	MM mm1;
	mm1 = mm;
	mm.print();
	return 0;
}

注意:

MM(MM& object) {
   name = object.name;
   age = object.age;
}

如果不写&

MM(MM object) {
   name = object.name;
   age = object.age;
}

会报错, “MM”: 非法的复制构造函数: 第一个参数不应是“MM”     

4.初始化参数列表

class MM {
public:
	MM(string s_name, int i_age) :name(s_name), age(i_age) {}
	void print() {
		cout << name <<'\t' << age << endl;
	}
private:
	string name;
	int age;
};
int main() {
	MM mm("wangjianghui", 25);
	mm.print();
	return 0;
}

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

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

相关文章

【2024软件测试面试必会技能】Charles(6):Charles设置弱网

设置弱网&#xff08;慢网速&#xff09; 方法一&#xff1a;点击Charles 上方的乌龟标志&#xff0c;模拟网络延迟&#xff1b; 方法二&#xff1a;点击Proxy——Throttle Settings——勾选Enable Throttling——再勾选Only for selected hosts——点击Add,设置指定的域名——…

探索Promise异步模式抽象的变体——Promise.race篇

如果阅读有疑问的话&#xff0c;欢迎评论或私信&#xff01;&#xff01; 本人会很热心的阐述自己的想法&#xff01;谢谢&#xff01;&#xff01;&#xff01; 文章目录 前言初识Promise.race探索Promise.raceAPI实例 前言 在本栏前一篇Promise.all中&#xff0c;我们可以实…

Panic与Recover:Go异常处理的救命稻草

Panic与Recover&#xff1a;Go异常处理的救命稻草 异常处理是每个程序员都应该关注的重要问题。在Go语言中&#xff0c;Panic和Recover是用于异常处理的两个关键概念。Panic用于触发异常&#xff0c;而Recover用于捕获和处理异常。本文将深入探讨Panic和Recover的区别&#xff…

面试redis篇-05双写一致

原理 双写一致性:当修改了数据库的数据也要同时更新缓存的数据,缓存和数据库的数据要保持一致 读操作:缓存命中,直接返回;缓存未命中查询数据库,写入缓存,设定超时时间写操作:延迟双删方案一:分布式锁,一致性要求高

安全生产:AI视频智能分析网关V4如何应用在企业安全生产场景中?

随着科技的不断进步&#xff0c;视频智能分析技术在安全生产领域中的应用越来越广泛。这种技术通过计算机视觉和人工智能算法&#xff0c;可以对监控视频进行自动分析和处理&#xff0c;以实现多种功能&#xff0c;如目标检测、行为识别、异常预警等。今天我们以TSINGSEE青犀AI…

PHP实现分离金额和其他内容便于统计计算

得到的结果可以粘贴到excel计算 <?php if($_GET["x"] "cha"){ $tips isset($_POST[tips]) ? $_POST[tips] : ; $pattern /(\d\.\d|\d)/; $result preg_replace($pattern, "\t\${1}\t", $tips); echo "<h2><strong>数…

如何快速卸载windows电脑的一些软件?

本系列是一些电脑常规操作的普及&#xff0c;有需要借鉴即可 注&#xff1a;每个电脑都会有差异&#xff0c;参考即可。 其实大部分软件你删除桌面上的图标不等于删除&#xff0c;因为桌面上的那个图标就是一个简单的快捷方式而已。 在这里插入图片描述 那如何正确的卸载软件呢…

实验室预约|实验室预约小程序|基于微信小程序的实验室预约管理系统设计与实现(源码+数据库+文档)

实验室预约小程序目录 目录 基于微信小程序的实验室预约管理系统设计与实现 一、前言 二、系统功能设计 三、系统实现 1、微信小程序前台 2、管理员后台 &#xff08;1&#xff09;管理员登录 &#xff08;2&#xff09;实验室管理 &#xff08;3&#xff09;公告信息…

【初始RabbitMQ】高级发布确认的实现

在生产环境中由于一些不明原因&#xff0c;导致 rabbitmq 重启&#xff0c;在 RabbitMQ 重启期间生产者消息投递失败&#xff0c; 导致消息丢失&#xff0c;需要手动处理和恢复。于是&#xff0c;我们开始思考&#xff0c;如何才能进行 RabbitMQ 的消息可靠投递呢&#xff1f; …

Jmeter学习系列之六:阶梯加压线程组Stepping Thread Group详解

性能测试中,有时需要模拟一种实际生产中经常出现的情况,即:从某个值开始不断增加压力,直至达到某个值,然后持续运行一段时间。 在jmeter中,有这样一个插件,可以帮我们实现这个功能,这个插件就是:Stepping Thread Group 1、下载配置方法 1.1.下载配置 插件下载地址:…

dell戴尔电脑灵越系列Inspiron 15 3520原厂Win11系统中文版/英文版

Dell戴尔笔记本灵越3520原装出厂Windows11系统包&#xff0c;恢复出厂开箱预装OEM系统 链接&#xff1a;https://pan.baidu.com/s/1mMOAnvXz5NCDO_KImHR5gQ?pwd3nvw 提取码&#xff1a;3nvw 原厂系统自带所有驱动、出厂主题壁纸、系统属性联机支持标志、Office办公软件、MyD…

【Java】接口及其实现(实验四)

目录 一、实验目的 二、实验内容 三、实验小结 一、实验目的 了解接口的作用掌握接口的定义与实现掌握接口的回调 二、实验内容 1. 定义一个接口Human&#xff0c;其中有一无参的、返回类型为void的方法speak&#xff08;&#xff09;&#xff1b;定义类Student实现接口&a…

大模型分布式训练方法FDSP和DeepSpeed

备注&#xff1a; 本文部分内容参考自其他作者的内容&#xff0c;如有不妥&#xff0c;请联系&#xff0c;立即删除。 pytorch单精度、半精度、混合精度、单卡、多卡&#xff08;DP / DDP&#xff09;、FSDP、DeepSpeed模型训练 相关代码&#xff1a;pytorch-model-train-temp…

高录用快见刊【最快会后两个月左右见刊】第三届社会科学与人文艺术国际学术会议 (SSHA 2024)

第三届社会科学与人文艺术国际学术会议 (SSHA 2024) 2024 3rd International Conference on Social Sciences and Humanities and Arts *文章投稿均可免费参会 *高录用快见刊【最快会后两个月左右见刊】 重要信息 会议官网&#xff1a;icssha.com 大会时间&#xff1a;202…

【Wio Terminal】使用WiFi(1)- 更新无线核心固件

使用WiFi&#xff08;1&#xff09;- 更新无线核心固件 一、概述1、更新无线核心固件步骤 1 - 擦除初始出厂固件步骤 2 - 刷入最新的固件 2、从Arduino IDE检查RTL8720固件版本安装rpcWiFi库验证 3、更新 SAMD ArduinoCore 一、概述 这篇wiki介绍了如何为Wio Terminal上的Real…

【Vuforia+Unity】AR01实现单张多张图片识别(Image Targets)召唤数字内容

1.官网注册 Home | Engine Developer Portal 2.下载插件SDK&#xff0c;导入Unity 3.官网创建数据库上传图片&#xff0c;官网处理成数据 下载好导入Unity&#xff01; 下载好导入Unity&#xff01; 下载好导入Unity&#xff01; 下载好导入Unity&#xff01; 4.在Unity设…

智慧农业四情监测预警系统

TH-Q3智慧农业四情监测预警系统是指通过对农田环境、作物生长、病虫害发生以及气象变化等四种情况的实时监测和数据分析&#xff0c;实现对农业生产过程的预警和决策支持的系统。该系统集成了物联网、大数据、云计算等现代信息技术&#xff0c;为农业生产提供了全面、准确、实时…

git 解除本地分支与其它分支(远程分支)的关联

开发中&#xff0c;我在同事的分支开一条分支&#xff0c;并将同事的分支作为关联分支&#xff0c;前两天还好&#xff0c;我一个人在干活&#xff0c;然而第3天&#xff0c;同事回来了&#xff0c;他在他那条分支也开发&#xff0c;这时就会出现2种情况&#xff0c; 1. 同时修…

数据中心机房建设的真正挑战

在数字化时代&#xff0c;数据中心机房不仅是信息处理和存储的心脏&#xff0c;也是企业运营的核心枢纽。然而&#xff0c;在机房建设过程中&#xff0c;存在一系列概念上的误解和痛点。这些误区不仅影响了机房建设的质量和效率&#xff0c;也给企业的长期发展带来了潜在的风险…

揭秘!KubeSphere 背后的“超级大脑”:etcd 的魅力与力量

作者&#xff1a;尹珉&#xff0c;KubeSphere Ambassador & Contributor&#xff0c;KubeSphere 社区用户委员会杭州站站长。 1. 开篇&#xff1a;揭开神秘面纱&#xff0c;etcd 如何驱动 KubeSphere 高效运转 在云原生时代&#xff0c;etcd 作为 Kubernetes 生态中不可或…