物件複製非靜態資料

2021-07-23 08:43:49 字數 740 閱讀 7547

#include#includeusing namespace std;

class point

{ int a,b;

char *ptr;

int size;

int arr[3];

public:

point(int j,int k,char *s,int m){

a=j;

b=k;

size=strlen(s)+1;

ptr=new char[size];

strcpy(ptr,s);

for(int x=0;x<3;x++)

arr[x]=x+m;

cout<<"cons"<

cons

6 9 you 2 3 4

6 9 you 2 3 4

6 9 you 2 3 4

desdes

des--------------------------------

process exited after 6.395 seconds with return value 0

請按任意鍵繼續. . .

定義建構函式,建立物件p1,呼叫建構函式,建立物件p2、p3不呼叫建構函式,直接將物件p1的資料成員複製到p2、p3內,從

而對p2、p3初始化。

存在三個物件,呼叫三次析構函式,呼叫一次建構函式,那只呼叫一次new,所以只需呼叫一次delete.

非區域性靜態物件

使用未被初始化的物件無異於蠻幹。建構函式可以確保物件在建立時被初始化,難道不是這樣嗎?是,也不是。在某個特定的被編譯單元 即原始檔 中,可能一切都不成問題 但如果在某個被編譯單元中,乙個物件的初始化要依賴於另乙個被編譯單元中的另乙個物件的值,並且這第二個物件本身也需要初始化,事情就會變得更複雜。例如...

php物件導向靜態和非靜態

靜態與非靜態的區別在於前面有沒有static的修飾,有static的是靜態變數,明顯,沒有的則是非靜態了。一般呼叫靜態變裡,是通過 來呼叫,而非靜態是通過 來呼叫。但下面去會顛覆你的三觀。你會發現用 也能呼叫非靜態,用 也能呼叫靜態.class admin public static functio...

物件導向 靜態類與非靜態類的區別

靜態類和非靜態類重要的區別是在於靜態類不能被例項化,也就是說不能使用 new 關鍵字建立靜態類型別的變數。使用static關鍵字來宣告靜態類,這樣的意義在於 首先,它防止程式設計師寫 來例項化該靜態類 其次,它防止在類的內部宣告任何例項欄位或方法。關鍵字 static 呼叫方式 靜態類名.靜態方法 ...