在下面的代碼中,我有一個具有int的動態數組的類A. 我有另一個類B有一個指向類AI的對象的指針數組已經寫入類A的拷貝構造函數。我需要爲B類寫一個拷貝構造函數和析構函數,我嘗試了各種方法,但沒有成功。 A級如何在一個類中創建複製構造函數和析構函數,其中對象本身有一個指向數組的指針數組
定義:
class A {
public:
A::A(const A& other){
siz = other.siz;
c = other.c;
s = other.s;
e = other.e;
arr= new int[other.c];
memcpy(arr, other.arr, sizeof(int) * c);
}
A::~A() {
delete [] m_arr;
}
const A& operator=(const A& rhs){
if(this == &rhs)
return *this; // handling of self assignment
delete[] arr; // freeing previously used memory
arr = new int[rhs.c];
siz = rhs.siz;
c = rhs.c;
e = rhs.e;
s = rhs.s;
memcpy(m_arr, rhs.arr, sizeof(int) * c);
return *this;
}
private :
int *arr ;
int c ;
int siz ;
int s ;
int e ;
}
B類的定義:
class B {
public:
B::B(const B& other){
// .......need help here
}
B::~B() {
//......need help here
}
private :
static const int constant = 7;
A * array[constant] ;
int x ;
int y ;
int z ;
}
感謝您的幫助
爲什麼不使用'std :: vector'? – user463035818
B :: B(const A&other){,爲什麼要在這裏類A?它應該是B類 – Sumeet
爲A寫一個代理操作,我可以幫忙 – doctorlove