Práctica de la función de copia de C ++

1. El tema es el siguiente:

 

 2. Ven y muestra:

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. Los resultados de ejecución son los siguientes:

 

 4. El último destructor aquí también liberó con éxito la memoria

 

Espero poder ayudar a todos, les pregunto si quieren un me gusta, me lo darán, gracias a todos.
Declaración de derechos de autor: Los derechos de autor de este artículo pertenecen al autor (@ 攻城 狮 小 关) y al CSDN. Bienvenido a la reimpresión, pero debe conservar este párrafo sin el consentimiento del autor. Declaración y proporcione el enlace original en un lugar obvio en la página del artículo; de lo contrario, se reserva el derecho a ejercer la responsabilidad legal.
No es fácil para todos escribir artículos, por favor respete los frutos del trabajo ~ 
Communication plus Q: 1909561302
blog garden address https://www.cnblogs.com/guanguan-com/

Supongo que te gusta

Origin blog.csdn.net/Mumaren6/article/details/108893433
Recomendado
Clasificación