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

一。类的三种初始化方式

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”     

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

跨境电商消息多发脚本制作需要用到的代码!

在跨境电商的运营中&#xff0c;为了更有效地推广产品、提升品牌知名度并增强与消费者的互动&#xff0c;消息群发成为了一个重要的营销手段。 为了实现这一目的&#xff0c;许多跨境电商团队会选择制作消息多发脚本&#xff0c;通过自动化发送消息来提高效率和覆盖面&#xf…

Postman接口测试之Mock快速入门

一、Mock简介 1.Mock定义 Mock是一种比较特殊的测试技巧&#xff0c;可以在没有依赖项的情况下进行接口或单元测试。通常情况下&#xff0c;Mock与其他方法的区别是&#xff0c;用于模拟代码依赖对象&#xff0c;并允许设置对应的期望值。简单一点来讲&#xff0c;就是Mock创建…

LabVIEW多通道压力传感器实时动态检测

LabVIEW多通道压力传感器实时动态检测 介绍了一种基于LabVIEW的多通道压力传感器实时动态检测系统&#xff0c;解决压阻式压力传感器温度补偿过程的复杂度&#xff0c;提高测量的准确性。通过自动轮询检测方法&#xff0c;结合硬件检测模型和多通道检测系统设计&#xff0c;本…

ADC--模拟量转换成数字量

目录 一、ADC硬件组成七大部分&#xff1a; 二、单次转换&#xff0c;连续转换&#xff0c;不连续采样模式&#xff0c;扫描模式区别 1、举例(5种组合情况) 2、模拟看门狗中断的作用&#xff1a; 三、MCU使用ADC步骤 一、ADC硬件组成七大部分&#xff1a; ①输入电压&#…

C#知识点-14(索引器、foreach的循环原理、泛型、委托)

索引器 概念&#xff1a;索引器能够让我们的对象&#xff0c;以索引&#xff08;下标&#xff09;的形式&#xff0c;便捷地访问类中的集合&#xff08;数组、泛型集合、键值对&#xff09; 应用场景&#xff1a; 1、能够便捷地访问类中的集合 2、索引的数据类型、个数、顺序不…

【Linux】普通用户sudo失败怎么办

普通用户&#xff0c;sudo失败报错怎么办 问题分析如何解决成功 问题分析 新建的普通用户sudo失败 sudo提权&#xff0c;是以root的身份执行命令。 当我们用sudo提升权限的时候&#xff0c;这里有个问题&#xff0c;Linux会提示我们输入当前普通用户的密码——这就有点不好。…

机器人内部传感器阅读笔记及心得-位置传感器-旋转变压器、激光干涉式编码器

旋转变压器 旋转变压器是一种输出电压随转角变化的检测装置&#xff0c;是用来检测角位移的&#xff0c;其基本结构与交流绕线式异步电动机相似&#xff0c;由定子和转子组成。 旋转变压器的原理如图1所示&#xff0c;定子相当于变压器的一次侧&#xff0c;有两组在空间位置上…

华清远见嵌入式学习——驱动开发——DAY8

作业要求&#xff1a; 1.使用GPIO子系统编写LED灯驱动&#xff0c;应用程序测试 2.注册三个按键的中断&#xff0c;只需要写内核代码 需要发布到CSDN 作业答案&#xff1a; GPIO子系统&#xff1a; 代码效果&#xff1a; 应用程序&#xff1a; #include<stdlib.h> …

网页403错误(Spring Security报异常 Encoded password does not look like BCrypt)

这个错误通常表现为"403 Forbidden"或"HTTP Status 403"&#xff0c;它指的是访问资源被服务器理解但拒绝授权。换句话说&#xff0c;服务器可以理解你请求看到的页面&#xff0c;但它拒绝给你权限。 也就是说很可能测试给定的参数有问题&#xff0c;后端…

fastApi笔记05-路径参数和数值校验

使用Path可以对路径参数声明与Query相同类型的校验和元数据 from typing import Annotatedfrom fastapi import FastAPI, Path, Queryapp FastAPI()app.get("/items/{item_id}") async def read_items(item_id: Annotated[int, Path(title"The ID of the item …

软件开发工程师,几款常用的APP,你用过几款?最后一个测试网络必备

作为一名程序员&#xff0c;手机里一定有几个常用的app&#xff0c;下面给大家推荐几款。 1. CSDN 国内最大编程论坛&#xff1b;虽然有多少人吐槽现在使用csdn就像屎里淘金&#xff0c; 但是不得不承认他仍然是大家搜索技术资料、问题的首选。 遇到问题打开app搜索&#x…

【LeetCode】升级打怪之路 Day 01:二分法

今日题目&#xff1a; 704. 二分查找35. 搜索插入位置34. 在排序数组中查找元素的第一个和最后一个位置 目录 今日总结Problem 1: 二分法LeetCode 704. 二分查找 【easy】LeetCode 35. 搜索插入位置 ⭐⭐⭐⭐⭐LeetCode 34. 在排序数组中查找元素的第一个和最后一个位置 【medi…

MySQL加锁策略详解

我们主要从三个方面来讨论这个问题&#xff1a; 啥时候加&#xff1f;如何加&#xff1f;什么时候该加什么时候不该加&#xff1f; 1、啥时候加 1.1 显式锁 MySQL 的加锁可以分为显式加锁和隐式加锁&#xff0c;显式加锁我们比较好识别的&#xff0c;因为他往往直接体现在 S…

SketchUp好用的插件介绍!最后一个渲染必备

在3D设计的世界里&#xff0c;SketchUp因其用户友好的界面和高效能特性而广受欢迎。如果你期望扩展SketchUp的功能范围&#xff0c;市场上提供了众多插件&#xff0c;它们能够帮助你更进一步地取得专业级的设计效果。让我们一探究竟&#xff01; 1、Multiple Offsets 由Sam D …

Leo赠书活动-18期 《高效使用Redis》

✅作者简介&#xff1a;大家好&#xff0c;我是Leo&#xff0c;热爱Java后端开发者&#xff0c;一个想要与大家共同进步的男人&#x1f609;&#x1f609; &#x1f34e;个人主页&#xff1a;Leo的博客 &#x1f49e;当前专栏&#xff1a; 赠书活动专栏 ✨特色专栏&#xff1a;…

mac真的安装不了vmware吗 mac如何安装crossover crossover序列号从哪里买 购买正版渠道

有些用户可能想在mac上运行一些只能在windows上运行的软件&#xff0c;比如游戏、专业软件等。这时候&#xff0c;就需要用到虚拟机技术&#xff0c;也就是在mac上安装一个可以模拟其他操作系统的软件&#xff0c;比如vmware或者crossover。那么&#xff0c;mac真的安装不了vmw…

js谐音梗创意小游戏《望子成龙》

&#x1f33b; 前言 龙年到来&#xff0c;祥瑞满天。愿您如龙般矫健&#xff0c;事业腾飞&#xff1b;如龙鳞闪耀&#xff0c;生活美满。祝您龙年大吉&#xff0c;万事如意&#xff01; 龙年伊始&#xff0c;我给各位设计了一款原创的小游戏&#xff0c;话不多说&#xff0c;直…

WP----Look 我看的见你,你却看不见我 tips:sql injection tips2: mysql 字符集

0x00 题目连接打开后&#xff0c;是空白的&#xff0c;源代码也是空白的 这种情况就抓包&#xff0c;看请求包和相应包里面是否有提示 相应包中存在很特别的响应头X-HT: verify 可能是参数&#xff0c;传递任意参数过去 0x01 传递5个长度的参数时&#xff0c;返回 说明参数的…

Java SourceDataLine 播放音频 显示频谱

Java SourceDataLine 播放MP3音频 显示频谱 1 添加依赖2 快速傅里叶变换2.1 FFT.java2.2 Complex.java 3 音频播放3.1 Player.java3.1 XPlayer.java 4 显示频谱5 结果 项目Value音频格式 添加依赖*.wav(JDK 原生支持)*.pcm(JDK 原生支持)*.au(JDK 原生支持)*.aiff(JDK 原生支持…

SQL 练习题目(入门级)

今天发现了一个练习SQL的网站--牛客网。里面题目挺多的&#xff0c;按照入门、简单、中等、困难进行了分类&#xff0c;可以直接在线输入SQL语句验证是否正确&#xff0c;并且提供了测试表的创建语句&#xff0c;也可以方便自己拓展练习&#xff0c;感觉还是很不错的一个网站&a…