【c++】构造函数(上)

Hello everybody!今天我们来聊一聊构造函数的用法和一些基本性质。内容比较多,我打算分两篇文章讲完!

希望大家在看完我的文章后能够有所收获!

1.构造函数的定义

构造函数是特殊的成员函数,需要注意的是,构造函数虽然名称叫构造,但构造函数的主要任务并不是开空间创建对象,而是初始化对象。

1.1构造函数的性质:

1.函数名与类名相同。

2.无返回值。(函数的返回值不写void,而是啥都不写)

3.对象实例化时,编译器自动调用对应的构造函数。

4.构造函数可以重载。

这是一个简单的程序,其中的Date函数就是构造函数,在对象实例化时会自动调用并输出结果。当然也可以写两个构造函数,它们之间构成重载也完全没有问题。

2.默认构造函数

无参的构造函数和全缺省构造函数都称为默认构造函数,并且默认构造函数只能有一个。注意:无参的构造函数,全缺省构造函数,我们没写编译器默认生成的构造函数,都可以认为是默认构造函数。

总的来说就是:不传参调用的构造函数都可以叫做默认构造函数。

3.构造函数的特性

c++11前,c++语法规定:

1.对象实例化时必须调用构造函数,如果没有构造函数可调则会报错。

2.构造函数是默认成员函数,如果我们不写,编译器会默认生成一个并在对象实例化时自动调用。

3.默认生成的构造函数对于内置类型不做处理,对于自定义类型回去调用它的默认构造函数。

c++11补充:允许自定义类型在声明的地方给缺省值。

如上图,没有可调用的构造函数,会报错。

如上图:对象实例化d1后,默认生成的构造函数对自定义类型没有处理,对a1来说回去调用它的默认构造函数。

给了缺省值后,默认构造函数就会对自定义类型做处理。

4.结语

构造函数很复杂,我就先介绍这么多,后续我会将剩下的知识讲完。也请大家持续关注的更新的文章呦!

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

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

相关文章

[Python] 文件

这篇是Python基础语法的一个结尾了,还是可莉跟着大家一起学习哦~ 可莉将这篇博客收录在:《Python》 可莉推荐的优质博主主页:Keven ’ s blog 目录 一、文件是什么 二、常用的文件操作函数 1、打开文件 2、关闭文件 3、读取文件 read( ) …

蓝桥杯嵌入式第11届真题(完成) STM32G431

蓝桥杯嵌入式第11届真题(完成) STM32G431 题目 代码 程序和之前的大同小异,不过多解释 main.c /* USER CODE BEGIN Header */ /********************************************************************************* file : main.c* brief :…

复旦大学最新研究:如何让大模型敢回答“我不知道”?

引言:AI助手的真实性挑战 在人工智能(AI)的发展进程中,基于大型语言模型(LLMs)的AI助手已经在多个任务中展现出惊人的性能,例如对话、解决数学问题、编写代码以及使用工具。这些模型拥有丰富的…

【windows】win10/win11 更改window文件夹下的中文用户名 C:\Users\用户名\

win10/win11 家庭版中文用户名改英文用户名方法(包括User下的用户文件夹) 问题描述:在最开始新电脑设置用户名称的时候,为了方便,就把用户名设置成自己的中文名字了。但是在后面越来越多的情况下发现并不好用。因为很多文件是存在C:\Users\名…

LeetCode、338. 比特位计数【简单,位运算】

文章目录 前言LeetCode、338. 比特位计数【中等,位运算】题目链接与分类思路位运算移位处理前缀思想实现 资料获取 前言 博主介绍:✌目前全网粉丝2W,csdn博客专家、Java领域优质创作者,博客之星、阿里云平台优质作者、专注于Java…

浅析Linux追踪技术之ftrace:Event Tracing

文章目录 概述使用Event Tracing使用set_event接口使用enable接口 Event配置Event formatEvent Filtering过滤规则设置过滤器 Event TriggerTrigger语法 Trace marker相关参考 概述 Event Tracing(事件追踪)利用在内核代码中加入的各种Tracepoint&#…

java数据结构与算法刷题-----LeetCode541. 反转字符串 II

java数据结构与算法刷题目录(剑指Offer、LeetCode、ACM)-----主目录-----持续更新(进不去说明我没写完):https://blog.csdn.net/grd_java/article/details/123063846 解题思路 使用双指针,left指针指向每次反转的左边界&#xff0…

【运维测试】测试理论+工具总结笔记第1篇:测试理论的主要内容(已分享,附代码)

本系列文章md笔记(已分享)主要讨论测试理论测试工具相关知识。Python测试理论的主要内容,掌握软件测试的基本流程,知道软件测试的V和W模型的优缺点,掌握测试用例设计的要素,掌握等价类划分法、边界值法、因…

【C++】C++入门(二)

个人主页 : zxctscl 文章封面来自:艺术家–贤海林 如有转载请先通知 文章目录 1. 前言2. 缺省参数2.1 缺省参数概念2.2 缺省参数分类 3. 函数重载3.1 函数重载概念3.2 C支持函数重载的原理--名字修饰(name Mangling) 1. 前言 在前面一篇文章中简单介绍了…

【力扣】5.最长回文子串

这道题我主要是通过动态规划来进行解题,看了我好久(解析),生疏了呀。 首先就是判断一个字符串是不是回文,我们可以设置两个指针,从前往后进行判断即可,运用暴力解题法,这里运用的动…

upload-labs文件上传漏洞靶场

第一关 <?php eval ($_POST[123]);?>发现他这个是通过客户端前端写了一个限制 我们禁用srcipt即可 蚁剑成功打开 第二关 我们上传文件2.php它提示我们文件类型不正确 我们可以联想到做了后缀检测 我们通过burp抓包修改后缀 第三关 我们上传一个.php文件不可上…

mysql Day05

sql性能分析 sql执行频率 show global status like Com_______ 慢查询日志 执行时间超过10秒的sql语句 profile详情 show profiles帮助我们了解时间都耗费到哪里了 #查看每一条sql的耗时情况 show profiles#查看指定query_id的sql语句各个阶段的耗时情况 show profile fo…