当前位置: 首页 > news >正文

萧县哪有做网站的制作网站民治

萧县哪有做网站的,制作网站民治,深圳宝安区电子厂,维护网站费用怎么做会计凭证格式定义 在 C11 里,委托构造函数的格式为:一个构造函数能够在其成员初始化列表里调用同一个类的其他构造函数。基本语法如下: class ClassName { public:// 被委托的构造函数(目标构造函数)ClassName(参数列表1) : …

格式定义

在 C++11 里,委托构造函数的格式为:一个构造函数能够在其成员初始化列表里调用同一个类的其他构造函数。基本语法如下:

class ClassName {
public:// 被委托的构造函数(目标构造函数)ClassName(参数列表1) : 成员初始化列表1 {// 函数体}// 委托构造函数ClassName(参数列表2) : ClassName(参数列表1) {// 委托构造函数自身的额外操作(可选)}
};
  • ClassName 是类的名称。
  • 参数列表1 是被委托构造函数所需的参数。
  • 成员初始化列表1 用于初始化类的成员变量。
  • 参数列表2 是委托构造函数接收的参数,它可能和 参数列表1 不同。
  • 在委托构造函数的成员初始化列表中,ClassName(参数列表1) 这种形式就是调用被委托的构造函数。

使用场景

1. 减少代码重复

当一个类存在多个构造函数,且这些构造函数有部分初始化逻辑相同时,使用委托构造函数能避免代码重复,提高代码的可维护性。要是后续需要修改初始化逻辑,只需在被委托的构造函数里修改即可。

2. 提供多种初始化方式

委托构造函数允许为类提供多种不同的初始化方式,用户可以依据具体需求选择合适的构造函数,同时把核心的初始化逻辑集中在一个或几个构造函数中。

举例说明

下面是一个 Person 类的示例,展示了委托构造函数的使用:
 

#include <iostream>
#include <string>class Person {
private:std::string name;int age;std::string address;public:// 被委托的构造函数,完成所有成员的初始化Person(const std::string& n, int a, const std::string& addr): name(n), age(a), address(addr) {std::cout << "被委托的构造函数被调用" << std::endl;}// 委托构造函数 1:省略地址信息,使用默认地址Person(const std::string& n, int a): Person(n, a, "未提供地址") {std::cout << "委托构造函数 1 被调用" << std::endl;}// 委托构造函数 2:省略年龄和地址信息,使用默认值Person(const std::string& n): Person(n, 0, "未提供地址") {std::cout << "委托构造函数 2 被调用" << std::endl;}// 打印人员信息的函数void printInfo() const {std::cout << "姓名: " << name << ", 年龄: " << age<< ", 地址: " << address << std::endl;}
};int main() {// 使用委托构造函数 2 创建对象Person p1("张三");p1.printInfo();std::cout << std::endl;// 使用委托构造函数 1 创建对象Person p2("李四", 25);p2.printInfo();std::cout << std::endl;// 使用被委托的构造函数创建对象Person p3("王五", 30, "北京市朝阳区");p3.printInfo();return 0;
}    

代码解释

  • 被委托的构造函数Person(const std::string& n, int a, const std::string& addr) 是被委托的构造函数,它接收三个参数,对 nameage 和 address 进行初始化。
  • 委托构造函数 1Person(const std::string& n, int a) 接收两个参数,省略了 address 参数。在成员初始化列表中调用被委托的构造函数,并为 address 提供默认值 "未提供地址"
  • 委托构造函数 2Person(const std::string& n) 接收一个参数,省略了 age 和 address 参数。在成员初始化列表中调用被委托的构造函数,并为 age 和 address 提供默认值。
  • main 函数:分别使用不同的构造函数创建 Person 对象,并调用 printInfo 函数输出对象信息。

注意事项

  • 委托构造函数只能在成员初始化列表中调用其他构造函数,不能在构造函数体中调用。
  • 要避免出现构造函数的循环委托,不然会导致编译错误。
http://www.dtcms.com/a/557437.html

相关文章:

  • 力扣2517. 礼盒的最大甜蜜度
  • 哪个网站可以直接做ppt简单网页模板
  • 福州网站建设托管个人网站设计成品下载
  • Android WebView 从入门到最佳实践
  • 青岛公路建设集团有限公司网站好乐买网站推广方式
  • 自定义字段/动态字段的实现方法汇总
  • Python---数据容器(Dict 字典)
  • zabbix实现监控Hadoop、Docker、SSL证书过期时间应用的保姆级实操流程
  • 怎么在网站空间上传文件西地那非口崩片
  • Linux 容器安装 conda 和 pip
  • 中国建设银行企业门户网站wordpress theme 企业
  • k8s问答题(1)
  • 怎么用dw做带登陆的网站北京新网数码信息技术有限公司
  • MySQL 5.7 安装Audit 审计日志插件
  • 【Docker】P5 Docker Compose 实战指南:一键部署 WordPress + MySQL
  • 升鲜宝供应链管理系统-生鲜配送系统_分拣端界面重构设计(一)
  • 网站降权的原因discuz论坛网站做的门户
  • 【GitHub探索】代码开发AI辅助工具trae-agent
  • 绍兴做网站建设公司建设项目竣工验收公告网站
  • 量子计算机操作系统的破晓:中国“本源司南“与全球开源生态全景解析
  • 西安百度推广网站建设k8s wordpress mysqli
  • 计算机网络:Socket编程预备
  • 做网站地图邮什么好处现在的网站前端用什么做
  • 4399自己做游戏网站兰考县住房和城乡建设局网站
  • C++ Opencv 蓝图01(进阶版)
  • PyTorch2 Python深度学习 - 数据集与数据加载
  • 【开题答辩全过程】以 服装定制系统的设计与实现为例,包含答辩的问题和答案
  • 电商网站改版方案深圳建设银行网上银行登录
  • 做presentation的网站金融社区类网站建设
  • 绥中做网站青海西宁制作网站企业