C++之拷贝函数实践
1.题目如下:
2.来吧展示:
array.h
class Array { public: Array(int count);//构造函数 Array(const Array &arr);//拷贝构造函数 ~Array();//析构函数 void setCount(int count);//封装函数 int getCount(); void printAddr(); private: int m_iCount; int *m_pArr; };
array.cpp
#include <iostream> #include "array.h" using namespace std; Array::Array(int count) { m_iCount = count; m_pArr = new int[m_iCount]; cout << "Array" << endl; } Array::Array(const Array &arr) { m_pArr = arr.m_pArr; m_iCount = arr.m_iCount; cout << "Array &" << endl; } Array::~Array() { delete []m_pArr; m_pArr = NULL; cout << "~Array" << endl; } void Array::setCount(int count) { m_iCount = count; }
demo.cpp
#include <iostream> #include <stdlib.h> #include "array.h" using namespace std; int main(void) { Array arr1(5); Array arr2(arr1);//浅拷贝 arr1.printAddr(); arr2.printAddr(); cout << "arr2.m_iCount" << " " << arr2.getCount() << endl; system("pause"); return 0; }
3.运行结果如下:
4.这边最后的析构函数也成功释放了内存
希望能帮到大家,问你们要一个赞,你们会给吗,谢谢大家
版权声明:本文版权归作者(@攻城狮小关)和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
大家写文都不容易,请尊重劳动成果~
交流加Q:1909561302
CSDN地址https://blog.csdn.net/Mumaren6/