#ifndef myarray_h
#define myarray_h
class myarray
;#endif // myarray_h
#include "myarray.h"
#include
myarray::myarray(int length)
}myarray::myarray(const myarray &array)//自定義拷貝建構函式
}int myarray::getlength()
void myarray::setdata(int index, int value)
else
}int myarray::getdata(int index)
else
return ret;
}void myarray::distroy()
#include
#include "myarray.h"
using
namespace
std;
int main()
for(int i=0;icout
<< a1.getdata(i) << endl;
}cout
<< "a2"
<< endl;
myarray a2(3);
for(int i=0;i1);
}for(int i=0;icout
<< a2.getdata(i) << endl;
}cout
<< "a2(a1)"
<< endl;
a2 = a1; //這裡不能使用a2(a1)來執行深拷貝建構函式,這裡是使用編譯器提供的拷貝建構函式,而不是自定義的拷貝建構函式
for(int i=0;icout
<< a2.getdata(i) << endl;
}cout
<< "a3(a2)"
<< endl;
myarray a3(a2);//這裡也可以使用a3=a2來執行深拷貝建構函式
for(int i=0;icout
<< a3.getdata(i) << endl;
}a1.distroy();
a2.distroy();//如果沒有深拷貝建構函式,僅使用編譯器提供的淺拷貝建構函式,當a1.distroy()結束時,導致後面a2就會重複釋放a1
a3.distroy();
cout
<< "---end---"
<< endl;
return
0;}
類陣列是啥子????
#ifndef mytest_h
#define mytest_h
class mytest
;#endif // mytest_h
#include "mytest.h"
#include
mytest::mytest(int v)
mytest::mytest(const mytest& t) //深拷貝
void mytest::print()
void test_02()
;//類陣列:需要手自動呼叫建構函式
for(int i=0;i<4;i++)
t1 = t2; //t1 = 1;
t1.print();
}
使用MFC的陣列類
mfc的陣列類支援的陣列類似於c 中的常規陣列,可以存放任何資料型別。c 的常規陣列在使用前必須將其定義成能夠容納所有可能需要的元素,而mfc陣列類建立的物件可以根據需要動態地增大或減小,陣列的起始下標是0,而上限可以是固定的,也可以隨著元素的增加而增加,陣列在記憶體中的位址仍然 是連續分配的。mf...
使用MFC的陣列類
mfc的陣列類支援的陣列類似於c 中的常規陣列,可以存放任何資料型別。c 的常規陣列在使用前必須將其定義成能夠容納所有可能需要的元素,而mfc陣列類建立的物件可以根據需要動態地增大或減小,陣列的起始下標是0,而上限可以是固定的,也可以隨著元素的增加而增加,陣列在記憶體中的位址仍然是連續分配的。mfc...
專案2 我的陣列類
專案2 我的陣列類 下面的程式,因為存在指標型別的資料成員,需要能完成深複製的建構函式。請補充完整建構函式和析構函式 其他不必動 其中,建構函式要完成下面三個任務 1 為各成員函式賦值,按照深複製原則,其中arrayaddr應該是為儲存資料新分配的連續空間的首位址 2 myarray int a,i...