C++基础知识:构造函数的分类和调用,有参构造和无参构造,有参构造和无参构造,三种调用方式:括号法,显示法,隐式转换法,以及相关代码演示和注意事项

1.构造函数的分类及调用:

2.两种分类方式:


按参数分为: 有参构造和无参构造
按类型分为:有参构造和无参构造


3.三种调用方式:


括号法
显示法
隐式转换法

2.调用方法代码演示

1.括号法代码演示:
#include<iostream>using namespace std;//1.构造函数的分类和调用//分类
//按照参数分类-----无参构造(也称之为默认构造)和有参构造
//按照类型分类-----普通构造和拷贝构造class Person {
public:/*无参构造*/Person() {cout << "Person的无参构造函数调用" << endl;}/*有参构造*/Person(int a) {age = a;cout << "Person的有参构造函数调用" << endl;}//拷贝构造函数(简单来说就是克隆)Person(const Person& p) {//要加const进行限制,并且要引用age = p.age;//将传入的人身上的所有属性,拷贝到我身上(也就是调用这个构造函数的对象身上)cout << "Person的有参拷贝构造函数调用" << endl;}int age;~Person(){cout << "Person的析构函数调用" << endl;}
};//调用
void test01() {//1.括号法Person p1;//默认构造函数的调用Person p2(10);//有参构造函数Person p3(p2);//拷贝构造函数//拷贝构造函数的用途cout << "p2的年龄为:" << p2.age << endl;//因为是拷贝所以p3的年龄也为10cout << "p3的年龄为:" << p3.age << endl;//注意调用默认构造函数的时候不要加()//Person p1();//编译器会认为这是一个函数声明,不会认为在创建对象}int main() {test01();system("pause");return 0;
}
1.1括号法代码效果:

2.显示法:
#include<iostream>using namespace std;//1.构造函数的分类和调用//分类
//按照参数分类-----无参构造(也称之为默认构造)和有参构造
//按照类型分类-----普通构造和拷贝构造class Person {
public:/*无参构造*/Person() {cout << "Person的无参构造函数调用" << endl;}/*有参构造*/Person(int a) {age = a;cout << "Person的有参构造函数调用" << endl;}//拷贝构造函数(简单来说就是克隆)Person(const Person& p) {//要加const进行限制,并且要引用age = p.age;//将传入的人身上的所有属性,拷贝到我身上(也就是调用这个构造函数的对象身上)cout << "Person的有参拷贝构造函数调用" << endl;}int age;~Person(){cout << "Person的析构函数调用" << endl;}
};//调用
void test01() {//2.显示法Person p1;//默认构造是一样的Person p2 = Person(10);//有参构造Person p3 = Person(p2);//有参构造//注意事项1:Person(10);//匿名对象,特点:当前行执行结束后,系统会立即回收掉匿名对象//2.注意事项2;//不要利用拷贝构造函数 初始化匿名函数//下面这个编译器会认为是Person (p3)===Person p3;//对象申明//Person(p3);//会报错cout << "打印线———————" << endl;
}int main() {test01();system("pause");return 0;
}
2.1显示法代码执行结果:

3.隐式转换法:
#include<iostream>using namespace std;//1.构造函数的分类和调用//分类
//按照参数分类-----无参构造(也称之为默认构造)和有参构造
//按照类型分类-----普通构造和拷贝构造class Person {
public:/*无参构造*/Person() {cout << "Person的无参构造函数调用" << endl;}/*有参构造*/Person(int a) {age = a;cout << "Person的有参构造函数调用" << endl;}//拷贝构造函数(简单来说就是克隆)Person(const Person& p) {//要加const进行限制,并且要引用age = p.age;//将传入的人身上的所有属性,拷贝到我身上(也就是调用这个构造函数的对象身上)cout << "Person的有参拷贝构造函数调用" << endl;}int age;~Person(){cout << "Person的析构函数调用" << endl;}
};//调用
void test01() {//3.隐式转换法Person p4 = 10;//相当于Person p4 =Person(10) 有参构造Person p5 = p4;//拷贝构造}int main() {test01();system("pause");return 0;
}
3.1隐式转换法代码执行结果:

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

8、springboot3 vue3开发平台-后端-使用aop 添加系统访问日志

1. 添加依赖&#xff0c; 创建数据库 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-aop</artifactId></dependency><!-- IP地址解析 --><dependency><groupId>org.lionsou…

1000W长连接,如何建立和维护?千万用户IM 架构设计

1000W长连接&#xff0c;如何建立和维护&#xff1f;千万用户IM 架构设计 在40岁老架构师 尼恩的读者交流群(50)中&#xff0c;最近有小伙伴拿到了一线互联网企业如得物、阿里、滴滴、极兔、有赞、希音、百度、网易、美团的面试资格&#xff0c;遇到很多很重要的架构类/设计类…

【Vulnhub靶场AI-WEB-1.0打靶教程】

第一步&#xff1a;查看虚拟机的ip 第二步&#xff1a;扫描ip下开放的80端口 第三步&#xff1a;扫描查到的ip地址下的目录 第四步&#xff1a;访问查到的目录 访问robot.txt 第五步:访问robot.txt显示出的目录 第六步&#xff1a;打开kali终端&#xff0c;使用sqlmap功能 sq…

YOLO:训练自己的样本数据集进行目标检测

作者&#xff1a;CSDN _养乐多_ 本文将介绍如何使用python语言和 ultralytics 库训练自己的数据集&#xff0c;并进行 YOLO 目标检测模型训练和推理的代码。 文章目录 一、样本数据集准备1.1 标注工具1.2 数据集格式1.2.1 图片和标签数据集制作1.2.2 data.yaml制作 二、模型训…

canvas根据图片生成粒子动画

canvas根据图片生成粒子动画 效果展示&#xff1a; canvas根据图片生成粒子动画效果 注意&#xff1a; js和css的引入 id&#xff1a; cartoonDot-img对应的是被 拷贝的图像&#xff0c;后期要替换的 粒子图像就在这 min.js 地址 HTML代码块 <!DOCTYPE html> <h…

系统架构师考点--系统架构设计(中)

大家好。今天继续总结一下系统架构设计的一些考点。 一、软件架构复用 软件产品线是指一组软件密集型系统&#xff0c;它们共享一个公共的、可管理的特性集&#xff0c;满足某个特定市场或任务的具体需要&#xff0c;是以规定的方式用公共的核心资产集成开发出来的。即围绕核…

SpringBoot 日志:从基础到高级的全面指南

&#x1f4da; SpringBoot 日志&#xff1a;从基础到高级的全面指南 &#x1f50d; &#x1f4da; SpringBoot 日志&#xff1a;从基础到高级的全面指南 &#x1f50d;摘要引言正文内容一、日志概述 &#x1f4dc;二、日志使用 &#x1f4dd;2.1 打印日志 &#x1f4e3;2.2 日志…

IIS解析漏洞~ IIS7.漏洞分析

IIS解析漏洞 文件解析漏洞是由于中间件错误的将特殊格式的文件解析成可执行网页文件(脚本)&#xff0c;配合文件上传漏洞进行GetShell的漏洞&#xff01; 1.2&#xff1a;IIS7.X 在IIS7.0和IIS7.5版本下也存在解析漏洞&#xff0c;在默认Fast-CGI开启状况下&#xff0c;在一个文…

DM集群的高可用的配置方式(多语言)

一、介绍 强调以下&#xff1a;dm_svc.conf必须放置到应用服务器上才行&#xff0c;放到其他服务器上识别不到。 文章中有的框架可能没写到并不代表不支持&#xff0c;有没提到的可文章下方留言。 1.dm_svc.conf的作用&#xff1a; dm_svc.conf文件主要是为了当DM数据库集群…

PHP健身微信小程序系统源码

&#x1f3cb;️‍♀️健身新潮流&#xff01;解锁“健身微信小程序”的全方位塑形秘籍 &#x1f4f1;开篇&#xff1a;掌中健身房&#xff0c;随时随地动起来 你还在为找不到合适的健身场地或教练而烦恼吗&#xff1f;是时候告别这些束缚&#xff0c;拥抱“健身微信小程序”…

如何在数据埋点中发现和修复数据上报逻辑错误

如何发现和处理数据埋点中的逻辑错误 在大数据分析中,数据埋点是至关重要的一环。然而,当我们遇到数据上报逻辑错误时,该如何应对呢?本文将为你揭示解决这一棘手问题的有效方法。 目录 如何发现和处理数据埋点中的逻辑错误什么是数据上报逻辑错误?如何发现数据上报逻辑错误…

S32G3系列芯片Serial Boot功能详解!

《S32G3系列芯片——Boot详解》系列——S32G3系列芯片Serial Boot功能详解&#xff01;★★★ 一、Serial Boot模式概述二、串行下载协议2.1 基于UART和CAN的下载协议概述2.2 基于FlexCAN的Serial Boot2.2.1 IO配置2.2.2 时钟配置2.2.3 通信波特率2.2.4 基于FlexCAN的Serial Bo…

定义和使用自己的子程序——函数的介绍

定义和使用自己的子程序——函数的介绍 1.函数基础语法1.1.基础语法1.2.例题1——距离函数题目描述输入格式输出格式输入输出样例输入 #1输出 #1 提示 2.void类型3.变量作用域和参数传递3.1.局部变量和全局变量3.2.形式参数和实际参数3.3.例题2——歌唱比赛题目描述输入格式输出…

计算机基础(Windows 10+Office 2016)教程 —— 第6章 电子表格软件Excel 2016(下)

电子表格软件Excel 2016 6.4 Excel 2016的公式与函数6.4.1 公式的概念6.4.2 公式的使用6.4.3 单元格的引用6.4.4 函数的使用6.4.5 快速计算与自动求和 6.5 Excel 2016的数据管理6.5.1 数据排序6.5.2 数据筛选6.5.3 分类汇总6.5.4 分组显示6.5.5 合并计算 6.6 Excel 2016的图表6…

【RabbitMQ】通配符模式(Topics)

一、基本概念 生产者&#xff08;Producer&#xff09;&#xff1a;发送消息到RabbitMQ交换机的程序。生产者定义消息的路由键&#xff0c;用于标识消息的目的地。交换机&#xff08;Exchange&#xff09;&#xff1a;接收生产者发送的消息&#xff0c;并根据路由键和绑定规则…

一款.NET开源、跨平台的DASH/HLS/MSS下载工具

前言 今天大姚给大家分享一款.NET开源&#xff08;MIT License&#xff09;、免费、跨平台的DASH/HLS/MSS下载工具&#xff0c;并且支持点播和直播&#xff08;DASH/HLS&#xff09;的内容下载&#xff1a;N_m3u8DL-RE。 网络流媒体传输协议介绍 DASH DASH是一种基于HTTP的…

2024年8月1日(前端服务器的配置以及tomcat环境的配置)

[rootstatic ~]# cd eleme_web/ [rootstatic eleme_web]# cd src/ [rootstatic src]# ls views/ AboutView.vue HomeView.vue [rootstatic src]# vim views/HomeView.vue [rootstatic src]# nohup npm run serve nohup: 忽略输入并把输出追加到"nohup.out" 构建项目…

零基础入门转录组数据分析——机器学习算法之boruta(筛选特征基因)

零基础入门转录组数据分析——机器学习算法之boruta&#xff08;筛选特征基因&#xff09; 目录 零基础入门转录组数据分析——机器学习算法之boruta&#xff08;筛选特征基因&#xff09;1. boruta基础知识2. boruta&#xff08;Rstudio&#xff09;——代码实操2. 1 数据处理…

机器学习之贝叶斯方法

机器学习之贝叶斯方法 1. 贝叶斯定理基础1.1 贝叶斯定理公式1.2 先验概率 (Prior Probability)1.3 后验概率 (Posterior Probability)1.4 似然 (Likelihood)1.5 证据 (Evidence)1.6 贝叶斯定理的应用实例 2. 贝叶斯方法的基本概念2.1 条件概率 (Conditional Probability)2.2 全…

Python SDK 使用Azure Document intelligence报错(404) Resource not found

最近项目需要使用到Azure Document intelligence,于是去做POC&#xff0c;但是发现最简单的demo跑的时候都会报这个错&#xff0c;解决了一下午终于搞定了&#xff0c;记录下。 首先是官方文档&#xff1a;Quickstart: Document Intelligence (formerly Form Recognizer) clien…