C++构造函数调用的问题

问题遇到的现象和发生背景

请问各位朋友们,为什么我的析构函数只调用1次呢,A,B应该各一次才对,用的是DEV++

问题相关代码,请勿粘贴截图
#include
using namespace std;

class Array2 {
    
    private:
        int r;
        int c;
        int **array;
    public:
        Array2 (){
        }
        Array2 (int row,int colume);  //在外面写函数主体的时候,不用加{},直接加: 
        ~Array2()
        {
            if(array)
            {
                cout<<"deconstructor called!"<for(int i=0;idelete [] array[i];
                }
                delete [] array;
                                
            } 
    
        }
        int * operator [] (int & i);
        int & operator () (int & i,int & j); 
        Array2 & operator = ( Array2 & ar);

        void setR(int row){
            r=row;
        }
        void setC(int colume){
            c=colume;
        }
                
        int getR()    {
            return r;
        }
        int getC()    {
            return c;
        }
        int** getArray()    {
            return array;
        }                            
};

Array2 & Array2::  operator = ( Array2 & ar){   //这里是构造函数(复制构造函数),不是赋值函数,要像构造函数那样写 
    //Array2 a1(ar.getR(),ar.getC());
    //return a1;
    r=ar.getC();
    c=ar.getR();
    array=ar.getArray();
    return *this;    
}

int & Array2:: operator () (int & i,int & j){
    return array[i][j];
}    

int *  Array2:: operator [] (int & i){
    //return a[i];
    return array[i];
}


Array2:: Array2(int row,int colume ):r(row),c(colume)
{    

    array=new int*[r];
    for(int i=0;inew int[c];
    }
}

int main()
{
    Array2 a(3,4);
    int i,j;
    for(i=0;i<3;++i)
    {
        for(j=0;j<4;j++)
        {
            a[i][j]=i*4+j;
        }
    }
    for(i=0;i<3;++i)
    {
        for(j=0;j<4;++j)
            cout<<a(i,j)<<",";
        cout<"next"<for(i=0;i<3;++i)
    {
        for(j=0;j<4;++j)
            cout<<b(i,j)<<",";
    cout<return 0;    
}

运行结果及报错内容

img

你的主函数不就创建了一次对象吗

你贴的代码能通过编译吗?