1樓:吉祥二進位制
c++中的類,本質上就是使用者自定義的一個資料型別,因此它和內建資料型別在使用上有很多相似之處。 可以對比內建資料型別來理解。假設有一個test的class。
要定義類的指標,如下:
test o_o; //定義test類的物件 o_o
test *p = &o_o; //定義一個類的指標,指向o_o
與int型別對比:
int o_o; //定義一個int型別的物件o_o
int *p = &o_o; //定義一個int型別的指標,指向o_o
實際上是類似的。 不同之處在於建構函式、解構函式那塊。
同樣也可以使用new進行動態分配 。
int *p = new int (2); //動態分配一個int物件並初始化為2
類test的動態分配也類似:
test *po_o = new test; //動態分配一個test物件,這裡呼叫的是預設建構函式。
2樓:匿名使用者
不是,同樣是new可是含義是不一樣的。
對於int *parray = new int;這個的含義是在系統的堆空間上分配為int,也就是4個位元組的空間給parray,這個時候parray裡所指的值是沒有含義的,如你所說沒有定義值。
但是對於intarray * parray = new intarray來說,會激發intarray的建構函式,是否有意義則取決於intarray的建構函式的內容了。
3樓:
我是當一樣來理解的。
應該寫成這樣吧:
intarray * parray = new intarray();//括號
int * parray = new int();
兩個都不止是申明,已經初始化了。
第一句是建立(例項化)了一個intarrya的物件,指標parray指向它。
第二句是建立(分配了)了int型別的記憶體空間,指標parray指向那個空間。
兩個指標都已初始化了。
c++類物件和指標的區別
4樓:nba週報
類物件和類指標是兩個概念。
比如有個類:class test;
定義類物件:test test;// test是類test的一個例項,可以供通過"."運算子訪問類中的public成員
定義類指標:test *p_test; // 此時p_test只是一個指向test類型別的指標,還沒有分配記憶體。要使用指標,需要p_test = new test(); 此時p_test指向一個test類型別的物件,可以通過"->"運算子訪問類中的public成員
C 指標定義,c 類的指標定義
為了說清楚什麼是指標,必須弄清楚資料在記憶體中是如何儲存的,又是如何讀取的。如果在程式中定義了乙個變數,在編譯時就給這個變數分配記憶體單元。系統根據程式中定義的變數型別,分配一定長度的空間。例如,c 編譯系統一般為整型變數分配4個位元組,為單精度浮點型變數分配4個位元組,為字元型變數分配1個位元組。...
c 類的指標定義,c 指標型別
intn 10 int p n 不管是c還是c 這句都是對的。int p n 不管是c還是c 這句都是錯的!型別不匹配。在不同的地方 表示的含意是有區別的。當 出現在型別定義時 型別之後的地方 如int p 那這是告訴編譯器變數p的型別為int型別的指標 int 所以你還可以這樣寫int p 或in...
C指標與C指標有什麼區別,C類的物件和類的指標的區別,指標和引用的區別
c 裡面的指標可以指向物件 動態申請記憶體的時候用new運算子 c語言的指標指向的是記憶體 不懂物件 動態申請記憶體的時候用malloc系列的函式 都一樣,為乙個4或8位元組的變數,儲存乙個位址值 指標都是一樣的,根據個人需要定義 感覺都是一樣的啊 有區別嗎?c 指標與c指標有什麼區別?c 裡面的指...