特殊成员函数实践

文章目录

    • 1.构造函数一般方式
    • 2.初始化列表方式,构造函数
    • 3.委托构造函数
    • 4.析构函数
    • 5.浅拷贝
    • 6.深拷贝
    • 7.移动构造

1.构造函数一般方式

2.初始化列表方式,构造函数

3.委托构造函数

4.析构函数

5.浅拷贝

6.深拷贝

7.移动构造

#include <iostream>
#include <string>using namespace std;/** 1.构造函数一般方式* 2.初试化列表方式,构造函数* 3.委托构造函数* 4.析构函数* 5.浅拷贝* 6.深拷贝* 7.移动构造函数* */class stu{
public:string name;int age;stu(){cout << "无参构造"<< endl;}stu(string name){cout << "有参构造1"<< endl;}stu(string name,int age){cout << "有参构造2"<< endl;}
};class teacher{
public:string name;int age;teacher(string name,int age):name(name),age(age){cout << "有参构造"<< endl;}
};class school{
public:string name;int age;school():name{"希望小学"},age(30){//无参构造,委托两个构造两个参数的构造函数};school(string name):school{name,100}{//一个参数的有参构造,委托两个参数的构造函数};school(string name,int age):name{name},age{age}{//该函数完成成员赋值操作};};class stu2{
public:string name;int age;stu2(string name,int age){cout << "有参构造"<< endl;}~stu2(){cout << "析构函数"<< endl;}
};class stu3{
public:string name;int age;stu3(string name,int age):name(name),age(age){cout << "有参构造"<< endl;}stu3(const stu3 & s){cout << "调用拷贝构造```"<< endl;name = s.name;age = s.age;}~stu3(){cout <<"析构函数"<< endl;}
};class hospital{
public:string name;string *address;hospital(string name,string *address):name(name),address(address){cout << "拷贝构造"<< endl;}hospital(const hospital & h){cout << "调用拷贝构造"<< endl;name = h.name;if(address== nullptr){address = new string;address = h.address;}}~hospital(){cout << "调用析构函数"<<endl;if(address != nullptr){
//            delete address;address = nullptr;}}
};class lecturer{
public:string *name;lecturer():name(new string("豆花")){cout << "执行构造函数lecturer"<<endl;}lecturer(const lecturer &le):name(new string(*le.name)){cout << "拷贝构造函数~"<<endl;}lecturer(lecturer && lec):name(lec.name){cout << "移动构造lec"<<endl;lec.name = nullptr;}~lecturer(){cout << "析构函数lecture"<< endl;delete name;}
};lecturer getLec(){lecturer ll;return ll;
}int main() {stu s;stu s2("小明");stu s3("小红",18);teacher t("王老师",38);school sc;school sc2("豆花");stu2 * s21 = new stu2("小明",18);delete s21;stu3 s31("小丽",12);stu3 s32 = s31;cout << s32.name << s32.age << endl;string address = "北京路";hospital h1("协和医院",&address);hospital h2 = h1;*h1.address = "上海路";lecturer ll = getLec();return 0;
}

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

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

相关文章

go语言方法之方法声明

从我们的理解来讲&#xff0c;一个对象其实也就是一个简单的赋值或者一个变量&#xff0c;在这个对象中会包含一些方法&#xff0c;而一个方法则是一个一个和特殊类型关联的函数。一个面向对象的程序会用方法来表达其属性和对应的操作&#xff0c;这样使用这个对象的用户就不需…

centos6下面用yum安装php7.3

首先安装remi.repo 仓库 参考: centos yum方式安装PHP74 centos yum方式安装PHP74_yum 安装php74-CSDN博客 yum安装 yum install php73-php-pecl-zip bz2 curl event gd json openssl mysqlnd PDO yum install php-posix php73 composer.phar config -g repo.packagist co…

AI大模型在测试中的深度应用与实践案例

文章目录 1. 示例项目背景2. 环境准备3. 代码实现3.1. 自动生成测试用例3.2. 自动化测试脚本3.3. 性能测试3.4. 结果分析 4. 进一步深入4.1. 集成CI/CD管道4.1.1 Jenkins示例 4.2. 详细的负载测试和性能监控4.2.1 Locust示例 4.3. 测试结果分析与报告 5. 进一步集成和优化5.1. …

IND-ID-CPA 和 IND-ANON-ID-CPA Game

Src: https://eprint.iacr.org/2017/967.pdf

算法训练 | 二叉树Part5 | 513.找树左下角的值、112.路径总和、106.从中序与后序遍历序列构造二叉树

目录 513.找树左下角的值 递归法 迭代法 ⭐ 112.路径总和 递归法 迭代法 106.从中序与后序遍历序列构造二叉树 递归法 513.找树左下角的值 题目链接&#xff1a;513. 找树左下角的值 - 力扣&#xff08;LeetCode&#xff09; 文章讲解&#xff1a;programmercarl.com…

超声波清洗机哪些品牌好用点?四大极其出色的机型一目了然

各位眼镜侠们&#xff0c;在佩戴眼镜的是&#xff0c;有没有觉得眼镜总是有些难以言喻的“味道”或者是污渍在镜片上面。是的&#xff0c;没有猜错&#xff0c;那是我们脸上油脂、汗液和各种不明物质的混合体。特别是在夏天的时候天气太炎热会经常出汗&#xff0c;眼镜上会沾染…

2021职称继续教育--加快构建完整内需体系,形成国内国际双循环相互促进新格局

单选题&#xff08;共7题&#xff0c;每题5分&#xff09; 1、根据本讲&#xff0c;突破和推进“一带一路”战略&#xff0c;要满足以企业为主体、以&#xff08;&#xff09;为导向的基本要求。 D、市场 2、根据本讲&#xff0c;让农村消费市场持续扩张的前提&#xff08;&am…

shell将文件分割成小块文件

背景&#xff1a;某软件最多支持1G的文件传输&#xff0c;需要对大文件进行切割。 方案1&#xff1a; 可以使用split命令将文件均分成10分片。以下是具体的命令示例&#xff1a; split -b $(($(du -b < 文件名) / 10)) 文件名 分片前缀 这里文件名是你想要分割的文件的名…

网络架构三层到大二层的对比和选择

在企业的网络结构选择中&#xff0c;有二层网络和三层网络结构两种选择。三层是按照逻辑拓扑结构进行的分类&#xff0c;汇聚层和接入层&#xff0c;流量纵向经过接入层、汇聚层网络&#xff0c;收敛至骨干核心层。二层网络结构没有汇聚层。大二层网络架构通常使用VLAN&#xf…

上海冠珠旗舰总店盛装开业暨冠珠瓷砖中国美学设计巡回圆满举办

上海&#xff0c;这座融合了东西方文化的国际化大都市&#xff0c;不仅是中国的时尚中心&#xff0c;也是全球潮流的汇聚地。在这里&#xff0c;古典与现代交织&#xff0c;传统与前卫并存&#xff0c;为传统色彩与现代设计的融合提供了得天独厚的条件。 5月25日&#xff0c;上…

JWT-登录后下发令牌

后端 写一个jwt工具类&#xff0c;处理令牌的生成和校验&#xff0c;如&#xff1a; 响应数据样例&#xff1a; 前端要做的&#xff1a;

ts 中的 type 和 interface 有什么区别?

一、用法举例 interface Person {name: stringage: number }const person: Person {name: Kite,age: 24 }type Person {name: stringage: number }const person: Person {name: Kite,age: 24 }二、翻阅 ts 的官方文档&#xff1a; 1、interface 接口 TypeScript的核心原则…

Weblogic SSRF漏洞 [CVE-2014-4210]

漏洞复现环境搭建请参考 http://t.csdnimg.cn/svKal docker未能成功启动redis请参考 http://t.csdnimg.cn/5osP3 漏洞原理 Weblogic的uddi组件提供了从其他服务器应用获取数据的功能并且没有对目标地址做过滤和限制&#xff0c;造成了SSRF漏洞&#xff0c;利用该漏洞可以向内…

【AJAX前端框架】Asynchronous Javascript And Xml

1 传统请求及缺点 传统的请求都有哪些&#xff1f; 直接在浏览器地址栏上输入URL。点击超链接提交form表单使用JS代码发送请求 window.open(url)document.location.href urlwindow.location.href url… 传统请求存在的问题 页面全部刷新导致了用户的体验较差。传统的请求导…

安泰电子:高压功率放大器应用场合介绍

高压功率放大器是一种电子设备&#xff0c;用于将低电压信号放大到较高电压水平&#xff0c;以满足各种应用需求。它在多个领域中具有广泛的应用&#xff0c;包括科学研究、工业生产、通信技术以及医疗设备。下面安泰电子将介绍高压功率放大器的应用场合。 科学研究 高压功率放…

【最优化方法】实验一 熟悉MATLAB基本功能

实验一  熟悉MATLAB基本功能 实验的目的和要求&#xff1a;在本次实验中&#xff0c;通过亲临使用MATLAB&#xff0c;对该软件做一全面了解并掌握重点内容。 实验内容&#xff1a; &#xff11;、全面了解MATLAB系统 &#xff12;、实验常用工具的具体操作和功能 学习建…

在Open AI的Assistant API中,Thread代表什么?

在OpenAI的Assistant API中&#xff0c;Thread通常代表一系列相关的对话&#xff0c;保持对话的上下文和连贯性。这对于创建连续对话非常重要&#xff0c;因为它允许模型记住先前的交互&#xff0c;并在随后的响应中参考这些信息。 具体作用 保持上下文&#xff1a;Thread可以…

深入学习Python:掌握面向对象编程

在上一篇文章中,我们介绍了Python的基本语法和概念,包括变量、数据类型、条件语句、循环、函数和文件操作。接下来,我们将深入探讨Python的面向对象编程(OOP)特性,这是现代编程中的一个重要概念。通过这篇文章,你将学会如何使用类和对象来组织和管理你的代码。 1. 面向…

哇!数据中台竟是企业数字化转型的关键力量!

在当今数字化浪潮席卷的时代&#xff0c;数据中台正成为企业实现数字化转型的关键力量。那么&#xff0c;究竟什么是数据中台呢&#xff1f;它乃是一种持续让企业数据活跃起来的机制&#xff0c;能够将企业内各部分数据汇聚至一个平台&#xff0c;达成数据的统一化管理。 数据中…