有参构造,无参构造,半缺省构造

news2024/11/26 10:23:16

目录

有参构造

无参构造

半缺省构造


有参构造

C++ 中的有参构造函数(Parameterized Constructor)是一个类中带有参数的特殊成员函数,用于创建对象并根据传入的参数对对象的成员进行初始化。有参构造函数在定义时需要指定参数的类型和名称,并在使用时需要提供相应的参数值。

下面是一个示例展示了如何在 C++ 中定义一个有参构造函数:

在上面的示例中,我们定义了一个名为 MyClass 的类,其中包含一个整数类型的成员变量 value。然后,我们定义了一个有参构造函数 MyClass(int val),该构造函数接收一个整数参数 val 并将其赋值给 value 成员变量。在 main 函数中,我们使用有参构造函数创建了一个对象 obj,并打印了 value 成员变量的值。


 

无参构造

在C++中,无参构造函数是一个没有任何参数的特殊构造函数。它没有输入参数,在创建类对象时自动调用。下面是一个示例:

在上面的示例中,string 类有一个无参构造函数,当创建 string 类的对象时,该构造函数会被自动调用。

使用无参构造函数的主要目的是在创建对象时完成对象的初始化。如果未提供任何构造函数,编译器将生成一个默认的无参构造函数,但如果你定义了其他带参数的构造函数,编译器将不会自动生成无参构造函数。因此,如果你想在类中使用无参构造函数,则需要明确地定义它。


半缺省构造

在C++中,缺省构造函数(Default Constructor)是一种没有参数的构造函数,它会被自动调用来创建一个类的对象。而半缺省构造函数(Semi-Default Constructor)是指带有默认参数值的构造函数。

下面是一个使用半缺省构造函数的示例:

在上面的示例中,Rectangle 类有两个私有成员变量 lengthwidth,还定义了一个半缺省构造函数。该构造函数可以接受两个参数 lw,并且给这两个参数提供了默认值0。这意味着,当我们创建 Rectangle 对象时,如果没有提供参数,则会使用默认值构造对象。

main() 函数中,我们可以看到三种方式使用半缺省构造函数创建 Rectangle 对象。rectangle1 是使用缺省构造函数创建的对象,会将 lengthwidth 初始化为0。rectangle2 是提供了一个参数5,而宽度使用默认值0进行初始化。rectangle3 则提供了两个非默认的参数,长度为3,宽度为4。

半缺省构造函数在一些情况下很有用,可以通过指定部分参数的方式创建对象,简化代码并提供灵活性。

 

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

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

相关文章

相机- yolo训练集 环境搭建

一、环境准备 运行cmd执行python --version 检查是否安装成功 安装pip,打开运行指令 python -m ensurepip --upgrade 打开官网,下载get_pip.py 运行cmd 运行指令python get-pip.py 运行cmd 运行指令 pip --version 显示pip版本即安装成功 根据上面获…

Lucene介绍与入门使用

https://github.com/apache/lucene Lucene简介 Lucene是apache软件基金会4 jakarta项目组的一个子项目,是一个开放源代码的全文检索引擎工具包,但它不是一个完整的全文检索引擎,而是一个全文检索引擎的架构,提供了完整的查询引擎…

宁波阿里云代理商:阿里巴巴CEO张勇:阿里云是一家云计算产品公司

4月26日,在2023阿里云合作伙伴大会上,阿里巴巴董事会主席兼CEO、阿里云智能CEO张勇表示,阿里云的核心定位是一家云计算产品公司,生态是阿里云的根基。 张勇表示,当前我们正站在智能化的起点,这是让“被集成…

基于Python的二维码识别系统设计与实现

博主介绍:擅长Java、微信小程序、Python、Android等,专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专栏推荐订阅👇🏻 不然下次找不到哟 Java项目精品实战案例…

基于单片机智能加湿器 水位防干烧加湿器的设计与实现

功能介绍 以51/STM32单片机作为主控系统;LCD1602液晶显示当前温湿度,当前模式,湿度下限;按键设置湿度下限,当湿度低于下限时开启加湿器;水位传感器检查加湿器是否有水,如果没有水到话加湿器不进行工作,蜂鸣…

Spring Security OAuth2.0(2):基于session的认证方式

文章目录 认证流程创建工程1 创建maven工程2. 实现认证功能3. 会话功能4. 授权功能 认证流程 \qquad 基于session的认证方式如下 \qquad 它的交互流程是,用户认证成功后,在服务端生成用户相关的数据保存在session(当前会话)中,发给客户端的s…

银河麒麟服务器v10 sp1 部署.Net6.0 http https

上一篇:银河麒麟服务器V10 SP1 .Net6.0 开机自动启动_csdn_aspnet的博客-CSDN博客 参考微软官网:ASP.NET Core 中的 Kestrel Web 服务器 | Microsoft Learn 为 ASP.NET Core Kestrel Web 服务器配置终结点 | Microsoft Learn 注意:使用此…

【云效】使用流水线进行应用部署

目录 前言一、部署应用步骤1、创建流水线2、编辑流水线源3、编辑java构建上传4、编辑主机部署 前言 「流水线」,又名「Flow」,是阿里云「云效」产品矩阵中的一款企业级自动化研发交付工具。 它提供了灵活易用的持续集成、持续验证和持续发布功能&#…

基于springboot+mybatis-plus+mysql+vue实现物流信息管理系统(课设)

基于springbootmybatis-plusmysqlvue实现物流信息管理系统(课设) 一、系统介绍1、系统主要功能:2、环境配置 二、功能展示1.登陆2.用户管理3.个人信息4.物流管理 三、其它系统四、获取源码 一、系统介绍 1、系统主要功能: 用户&…

ElasticSearch 快速上手教程 (二) —— 基本概念术语

上一部分,我们讲解了 ES 的一些基本概念和应用场景,以及如何在本机搭建一个 ELK 测试环境。现在这篇文章带你了解 ES 当中一些基本术语以及相关的工作原理。 基本的概念术语 node(节点) ES 的一个运行实例,存储了部分文档数据,属…

文件包含基础

实验目的 通过本实验,理解文件包含的基本方法及文件包含需要注意的问题,为熟练掌握文件包含方法及防御奠定基础。 实验环境 操作机:kali 靶机:Windows 实验地址:http://靶机ip/exp/include/include1.php 用户名&…

ABC 195 C

不知道该怎么解释这道题&#xff0c;反正我不太会&#xff0c;感觉很帅 题意&#xff1a; Code&#xff1a; #include <bits/stdc.h>#define int long longusing namespace std;const int mxn2e310; const int mxe2e510; const int mod1e97; const int Inf1e18;int N;v…

基于FreeRTOS的嵌入式设备管理关键技术研究及实现(学习四)

硬件平台 终端设备的硬件选型主要由STM32芯片作为处理器&#xff0c;板载时钟电路和电源电路以及对外通信串口&#xff0c;并挂载AM2302温湿度传感器来实时收集环境相关信息&#xff0c;将收集到的信息通过NB-IoT通信模组上传到云端&#xff0c;从而实现整个环境监测功能。 主…

【重拾计划】模板 | N进制加法

N进制加法模板 基本原理 n进制转十进制&#xff0c;利用字符串处理&#xff0c;由于位数不同&#xff0c;采用倒序处理字符串。 代码实现 #include<iostream> #include<cstdio> #include<cmath> #include<algorithm> #include<cstring> usin…

phpoffice/phpspreadsheet读取excel表格中的图片并保存到本地

我们开发导入excel表格功能时&#xff0c;会遇到表格中带有图片的情况&#xff0c;怎样获取到表格的图片并且把图片保存到本地&#xff0c;这样就可以展示你导入的数据和图片&#xff0c;实现此功能。 这里介绍一下分别使用phpspreadsheet和PHPExcel扩展库来实现读取Excel内图片…

win10multiple editions意思详细介绍

multiple editions是win10系统的一个版本号&#xff0c;很多的小伙伴都不知道这个英文是什么意思&#xff0c;今天就给你们带来了win10multiple editions意思详细介绍&#xff0c;还不清楚的就快来看看吧。 multiple editions是什么意思&#xff1a; 1、multiple editions是多…

C++笔记之内置基本类型的默认构造函数

C笔记之内置基本类型的默认构造函数 code review! 文章目录 C笔记之内置基本类型的默认构造函数1.C中基本内置类型的默认构造函数2.C有没有一个“内置构造函数”这样一个名词&#xff1f;3.基本内置类型按照前面提到的规则进行初始化是C11才开始的新特性吗&#xff1f; 1.C中…

【NX】NXOpen::BlockStyler::Tree的个人使用类分享

网上关于NXOpen::BlockStyler::Tree的例子不是太多&#xff0c;控件默认id名称为tree_control01&#xff0c;因为例子不多很多功能得自己写&#xff0c;虽然NXOpen::BlockStyler::Tree的封装已经不错了&#xff0c;但是实际使用起来也不是很方便&#xff0c;比如像获取所有节点…

基于PyQt5的桌面图像调试仿真平台开发(8)锐化

系列文章目录 基于PyQt5的桌面图像调试仿真平台开发(1)环境搭建 基于PyQt5的桌面图像调试仿真平台开发(2)UI设计和控件绑定 基于PyQt5的桌面图像调试仿真平台开发(3)黑电平处理 基于PyQt5的桌面图像调试仿真平台开发(4)白平衡处理 基于PyQt5的桌面图像调试仿真平台开发(5)…

机器学习基础之《特征工程(2)—特征工程介绍》

一、什么是特征工程 机器学习领域的大神Andrew Ng(吴恩达)老师说“Coming up with features is difficult, time-consuming, requires expert knowledge. “Applied machine learning” is basically feature engineering. ” 注&#xff1a;业界广泛流传&#xff1a;数据和特…