陣列類的使用2 含有類陣列的例子

2021-07-14 13:29:25 字數 1832 閱讀 3468

#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...