构造、拷贝构造、赋值、析构
#include <iostream> using namespace std;class Node { public:Node(const char*str="",int a = 0):m_a(a){if (str == NULL){m_p = new char[1];m_p[0] = '\0';}else{m_p = new char[strlen(str)+1];strcpy(m_p, str);m_p[strlen(str)] = '\0';}}Node(const Node& n){int len = strlen(n.m_p);m_p = new char[len + 1];strcpy(m_p,n.m_p);m_a = n.m_a;}Node& operator=(const Node& n){if (this != &n){Node temp(n);char* temp_str = temp.m_p;temp.m_p = m_p;m_p = temp_str;m_a = n.m_a;}return *this;}virtual ~Node(){delete m_p;} private:char* m_p;int m_a; };int main() {Node a("abcd",10);Node b(a);Node c;c = a; }
转载于:https://www.cnblogs.com/single-dont/p/11379488.html
构造、拷贝构造、赋值、析构相关推荐
- C++ 有参构造 无参构造 拷贝构造 以及参数化列表 成员对象之间的执行关系
#include <iostream> #include <string> using namespace std; class Phone { public:string m ...
- E. 手机服务(构造+拷贝构造+堆)
题目描述设计一个类来实现手机的功能.它包含私有属性:号码类型.号码. 号码状态.停机日期:包含方法:构造.拷贝构造.打印.停机. 1.号码类型表示用户类别,只用单个字母,A表示机构,B表示企业 .C表 ...
- C++之拷贝构造、拷贝赋值
拷贝构造 class Stu{public:int no;string name;int age; public:Stu(int no=10086, string name="jin&quo ...
- 拷贝构造,深度拷贝,关于delete和default相关的操作,explicit,类赋初值,构造函数和析构函数,成员函数和内联函数,关于内存存储,默认参数,静态函数和普通函数,const函数,友元
1.拷贝构造 //拷贝构造的规则,有两种方式实现初始化. //1.一个是通过在后面:a(x),b(y)的方式实现初始化. //2.第二种初始化的方式是直接在构造方法里面实现初始化. 案例如下: ...
- c/c++教程 - 2.4.2.1~2 对象的初始化和清理,构造函数和析构函数,构造函数的分类和调用(有参构造,无参构造,普通构造,拷贝构造,括号法,显示法,隐式转换法,匿名对象)
目录 4.2 对象的初始化和清理 4.2.1 构造函数和析构函数 4.2.2 构造函数的分类及调用 相关教程 4.2 对象的初始化和清理 生活中我们买的电子产品都基本会有出厂设置,在某一天我们不用时候 ...
- 类和对象—对象特性—拷贝构造函数调用时期
C++中拷贝构造函数通常有三种情况 使用一个已经建立完毕的对象来初始化一个新对象 值传递的方式给函数参数传值 以值方式返回局部对象 #include <iostream> using na ...
- 侯捷-C++面向对象高级开发(三大函数:拷贝构造,拷贝赋值,析构)
侯捷-C++面向对象高级开发(三大函数:拷贝构造,拷贝赋值,析构) 三大函数:拷贝构造,拷贝赋值,析构 第一个是拷贝构造,第二个是拷贝赋值 编译器有一套默认的东西实现这俩东西,可用到complex的实 ...
- 侯捷C++->三大函数:拷贝构造、拷贝赋值、析构
1.拷贝:如果类里带指针不能使用编译器给的那套赋值,仅仅是多了一个指针指向相同的内存(浅拷贝).(指针指向的内容不属于对象本身) 如果类带有指针,big three一定要写 2.拷贝构造:构造函数(函 ...
- C++之Big Three:拷贝构造、拷贝赋值、析构函数探究
涉及到本文所讲知识点的博文: C++之析构函数探究 C++之常引用和浅拷贝探究 C++之一个函数链的简单例子(分文件实现) C++之Big Three:拷贝构造.拷贝赋值.析构函数探究 C++之操作符 ...
最新文章
- SQL Server 跨数据库事务
- Android-可自动缩小字体的TextView
- “新内容 新交互”全球视频云创新挑战赛复赛启幕
- java replaceall删除中括号和内容_「技术文章」《阿里巴巴 Java 开发手册》精华摘要...
- 计算机专业答辩模板,论文答辩模板-计算机专业.ppt
- 企业级应用架构(一) 三层架构之解耦
- 搭建nfs,实现linux之间共享存储
- 一步一步学习Servlet中Request和Response
- java hbase 例子,java操作hbase例子
- React实战入门课程:dva开发一个cnode网站(3)
- 仿IBM首页焦点图,缩略图大图,带文字
- git 版本控制~ 文件没有绿色和红色图标
- 使用userscript扩展浏览器插件
- CVPR 2021 | 腾讯优图20篇论文入选,含人脸识别、时序动作定位、视频动作分割等领域...
- vs2015设置c语言,VS2015的使用
- 鸟哥的LINUX私房菜 基础学习篇 读书笔记 -- 第零章 计算机概论 (一)
- fMRI之dpabi处理经验(一)
- c++ emplace_back和push_back的异同
- HTML/CSS 知识点解析
- 魔力鸭linux驱动下载,魔力鸭原厂2108s固件
热门文章
- 微服务feignclient_微服务-(声明式调用feign)
- 寻找唯一特等奖java,大工斩获唯一特等奖!这次,请为我工老师疯狂打call!
- 2021葫芦岛市第六高级中学高考成绩查询,葫芦岛高考成绩查询
- zigbee传输速率_wifi智能开关和zigbee智能开关有哪些区别
- 深度学习tensorflow框架的会话
- 一个农场有头母牛,现在母牛才一岁,要到四岁才能生小牛,四岁之后,每年生一头小牛,n年后有多少头小牛
- [Visual Studio+TFS--强大的项目管理工具]
- 2019计算机B级考试题,【资格考试】2019最新整理-计算机等级考试一级B考试题分析.pdf...
- 使用solr构建hbase二级索引
- python学习笔记(十三)标准库heapq