博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Copy constructors, Assignment operators, and Copy assignment operator
阅读量:6390 次
发布时间:2019-06-23

本文共 2244 字,大约阅读时间需要 7 分钟。

1 #include 
// for assert() 2 #include
// for std::initializer_list 3 #include
4 5 class IntArray 6 { 7 private: 8 int m_length; 9 int *m_data;10 11 public:12 IntArray() :13 m_length(0), m_data(nullptr)14 {15 }16 17 IntArray(int length) :18 m_length(length)19 {20 m_data = new int[length];21 }22 23 IntArray(const std::initializer_list
&list): // allow IntArray to be initialized via list initialization24 IntArray(list.size()) // use delegating constructor to set up initial array25 {26 // Now initialize our array from the list27 printf("initializer_lis start!!!!\n");28 29 int count = 0;30 for (auto &element : list)31 {32 m_data[count] = element;33 ++count;34 }35 }36 IntArray(const IntArray &array)37 {38 m_length = array.m_length;39 m_data = new int[m_length];40 41 int i = 0;42 for (; i < m_length; i++)43 {44 m_data[i] = array.m_data[i];45 }46 }47 48 ~IntArray()49 {50 delete[] m_data;51 // we don't need to set m_data to null or m_length to 0 here, since the object will be destroyed immediately after this function anyway52 }53 54 int& operator[](int index)55 {56 assert(index >= 0 && index < m_length);57 return m_data[index];58 }59 void operator=(const std::initializer_list
&list)60 {61 m_length = list.size();62 m_data = new int[m_length];63 int count = 0;64 for (auto &element : list)65 {66 m_data[count] = element;67 ++count;68 }69 70 }71 72 void operator=(const IntArray &array)73 {74 m_length = array.m_length;75 m_data = new int[m_length];76 77 int i = 0;78 for (; i < m_length; i++)79 {80 m_data[i] = array.m_data[i];81 }82 83 84 }85 int getLength() { return m_length; }86 };

 

转载于:https://www.cnblogs.com/yetanghanCpp/p/9237829.html

你可能感兴趣的文章
×××灯式样的站点链接说明,链接提示
查看>>
Linux下动态IP和静态IP的设置方法
查看>>
mysql 行长度
查看>>
SUSE配置网关
查看>>
java中获取字母和数字的组合
查看>>
8-3 泛型
查看>>
你是“职业”软件开发吗?——书评《浮现式设计-专业软件开发的演进本质》...
查看>>
iOS 多线程 之 GCD(大中枢派发)(二)
查看>>
开源项目 log4android 使用方式详解
查看>>
ssh命令详解
查看>>
C# 中字符串转换成日期
查看>>
垃圾短信相关用户细分方案
查看>>
免费的Windows系统工具
查看>>
脚本:将git项目下载到本地并启动
查看>>
Linked List Cycle && Linked List Cycle II
查看>>
SeleniumTest
查看>>
ubuntu10.04 交叉编译 aria2 总结
查看>>
实验二 linux常用命令练习
查看>>
SPY
查看>>
base64加密解密c++代码
查看>>