完整的类(无参构造函数,有参构造函数,拷贝构造函数,赋值运算符重载,析构函数)

本文主要是介绍完整的类(无参构造函数,有参构造函数,拷贝构造函数,赋值运算符重载,析构函数),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

之所以又发一遍,是因为前面好像写的有问题(其实有没有我也忘了,记得好像是有点小问题),至于原因嘛,就是是懒.(毕竟我只是为了从头再走一遍做下笔记而已)

但是我怕万一有小伙伴看到了产生误导就不好了,误人子弟的事做了亏心啊.所以就把它单独拿出来发了一下.

#define _CRT_SECURE_NO_WARNINGS#include <iostream>using namespace std;class Student
{
public://无参构造函数Student(){this->m_name = new char[1];*this->m_name = 0;}//有参构造函数Student(const char* name){m_name = new char[strlen(name) + 1];strcpy(m_name, name);}//拷贝构造函数Student(const Student& s){m_name = new char[strlen(s.m_name) + 1];strcpy(m_name, s.m_name);}//赋值运算符重载(反正我一直叫它赋值构造函数)Student& operator=(const Student& s){//因为需要释放原空间,如果不做此判断,会赋值释放的空间(值不确定)if (m_name == s.m_name){return *this;}if (this->m_name != nullptr){delete[]this->m_name;this->m_name = nullptr;}this->m_name = new char[strlen(s.m_name) + 1];strcpy(this->m_name, s.m_name);return *this;}//析构函数~Student(){if (this->m_name != nullptr){delete[]this->m_name;this->m_name = nullptr;}}void studentShow()const{cout << this->m_name << endl;}private:char* m_name;
};int main()
{//调用有参构造Student s = "hello world";//调用无参构造函数Student s2;//调用复制构造函数Student s3(s2);//调用赋值构造函数s2 = s3 = s;s.studentShow();s2.studentShow();s3.studentShow();return 0;
}

输出

        hello world

        hello world

        hello world

这篇关于完整的类(无参构造函数,有参构造函数,拷贝构造函数,赋值运算符重载,析构函数)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/785068

相关文章

Python itertools中accumulate函数用法及使用运用详细讲解

《Pythonitertools中accumulate函数用法及使用运用详细讲解》:本文主要介绍Python的itertools库中的accumulate函数,该函数可以计算累积和或通过指定函数... 目录1.1前言:1.2定义:1.3衍生用法:1.3Leetcode的实际运用:总结 1.1前言:本文将详

PyCharm 接入 DeepSeek最新完整教程

《PyCharm接入DeepSeek最新完整教程》文章介绍了DeepSeek-V3模型的性能提升以及如何在PyCharm中接入和使用DeepSeek进行代码开发,本文通过图文并茂的形式给大家介绍的... 目录DeepSeek-V3效果演示创建API Key在PyCharm中下载Continue插件配置Con

轻松上手MYSQL之JSON函数实现高效数据查询与操作

《轻松上手MYSQL之JSON函数实现高效数据查询与操作》:本文主要介绍轻松上手MYSQL之JSON函数实现高效数据查询与操作的相关资料,MySQL提供了多个JSON函数,用于处理和查询JSON数... 目录一、jsON_EXTRACT 提取指定数据二、JSON_UNQUOTE 取消双引号三、JSON_KE

MySQL数据库函数之JSON_EXTRACT示例代码

《MySQL数据库函数之JSON_EXTRACT示例代码》:本文主要介绍MySQL数据库函数之JSON_EXTRACT的相关资料,JSON_EXTRACT()函数用于从JSON文档中提取值,支持对... 目录前言基本语法路径表达式示例示例 1: 提取简单值示例 2: 提取嵌套值示例 3: 提取数组中的值注意

本地搭建DeepSeek-R1、WebUI的完整过程及访问

《本地搭建DeepSeek-R1、WebUI的完整过程及访问》:本文主要介绍本地搭建DeepSeek-R1、WebUI的完整过程及访问的相关资料,DeepSeek-R1是一个开源的人工智能平台,主... 目录背景       搭建准备基础概念搭建过程访问对话测试总结背景       最近几年,人工智能技术

SQL Server数据库迁移到MySQL的完整指南

《SQLServer数据库迁移到MySQL的完整指南》在企业应用开发中,数据库迁移是一个常见的需求,随着业务的发展,企业可能会从SQLServer转向MySQL,原因可能是成本、性能、跨平台兼容性等... 目录一、迁移前的准备工作1.1 确定迁移范围1.2 评估兼容性1.3 备份数据二、迁移工具的选择2.1

CSS自定义浏览器滚动条样式完整代码

《CSS自定义浏览器滚动条样式完整代码》:本文主要介绍了如何使用CSS自定义浏览器滚动条的样式,包括隐藏滚动条的角落、设置滚动条的基本样式、轨道样式和滑块样式,并提供了完整的CSS代码示例,通过这些技巧,你可以为你的网站添加个性化的滚动条样式,从而提升用户体验,详细内容请阅读本文,希望能对你有所帮助...

C#从XmlDocument提取完整字符串的方法

《C#从XmlDocument提取完整字符串的方法》文章介绍了两种生成格式化XML字符串的方法,方法一使用`XmlDocument`的`OuterXml`属性,但输出的XML字符串不带格式,可读性差,... 方法1:通过XMLDocument的OuterXml属性,见XmlDocument类该方法获得的xm

Java实现Elasticsearch查询当前索引全部数据的完整代码

《Java实现Elasticsearch查询当前索引全部数据的完整代码》:本文主要介绍如何在Java中实现查询Elasticsearch索引中指定条件下的全部数据,通过设置滚动查询参数(scrol... 目录需求背景通常情况Java 实现查询 Elasticsearch 全部数据写在最后需求背景通常情况下

在 Windows 上安装 DeepSeek 的完整指南(最新推荐)

《在Windows上安装DeepSeek的完整指南(最新推荐)》在Windows上安装DeepSeek的完整指南,包括下载和安装Ollama、下载DeepSeekRXNUMX模型、运行Deep... 目录在www.chinasem.cn Windows 上安装 DeepSeek 的完整指南步骤 1:下载并安装