zoukankan      html  css  js  c++  java
  • 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/

  • 相关阅读:
    java第四次作业
    JAVA第三次作业
    Java第二次作业
    Java第一次作业
    android studio下载
    Android面试常问到的知识点
    [Java基础]List,Map集合总结
    搞ACM的你伤不起[转自RoBa]------(看一次,笑一次)
    06.5.1.Functions
    05.virsh命令的常用操作(kvm)
  • 原文地址:https://www.cnblogs.com/guanguan-com/p/13757351.html
Copyright © 2011-2022 走看看