1樓:
a *pa1,*pa2 定義了兩個a類的指標pa1,pa2可以呼叫類a的所有方法,換句話說,他們就是類a的例項化。
pa1=new a(3.0, 5.0); 初始化pa1,這時候會呼叫類a的建構函式a(float a, float b)
也就是說,在pa1這個指向類a的例項中,成員變數x=3,y=5相當於初始化賦值。
pa2=new a 初始化pa2,這時候會呼叫類a的建構函式a()
也就是說,在pa1這個指向類a的例項中,成員變數x=0,y=0相當於初始化賦值。
pa1->print();
pa2->print();這兩句話輸出什麼,相信樓主明白了吧~
如有疑問歡迎提問。。
2樓:匿名使用者
a *pa1,*pa2
宣告乙個指向a類的指標。
要想使用乙個類中的函式,必須有乙個類的例項(類本身只是乙個圖紙,只有例項化後才會在將它的成員寫入記憶體)。
指標的作用是為這個類的例項提供乙個引用。
new真正的例項化這個類,也就是將類的成員放入記憶體。
new方法一定返回乙個類的指標。
打個比方,你要蓋房子。定義類只是畫了乙個房子的圖紙,只有在new的時候才算真正把房子蓋起來了
3樓:雲風
a *pa1,*pa2;
定義兩個指向結構a的指標
new classname(parameters);
new classname;等價於new classname();
new classname(parameters); 為類申請空間,自動呼叫匹配的建構函式,並返回類指標
4樓:匿名使用者
a *pa1,*pa2是定義兩個a型別的指標變數就是 pa1 和 pa2
new是c++語言運算子之一,起作用是相當於c語言中的malloc函式,指在堆記憶體上分配使用者指定大小的記憶體
注意使用new申請的記憶體必須通過delete函式釋放,就像c語言中的free函式一樣,否則就會造成記憶體洩露問題。
希望對你有用!
5樓:匿名使用者
a *pa1,*pa2
是指申明pa1,pa2兩個指標,他們所指向的物件型別都為class a
new是在堆上分配記憶體的意思,new a就是申請分配一段記憶體空間來放a的物件,pa1 = new a;是說返回申請的記憶體空間的首位址,並把pa1指向這個位址。
關於C 類的問題。。急,關於C 類别範本的問題。。急
過載錯誤,不能區別2個過載函式 templateconst t array operator size t index const 加上const就能區別了 給你個例子 include using namespace std class a void fun int b void fun int b...
C 類的組織問題
我先說一下我對你的意思的理解,b和c繼承於a,class a class b public a class c public a 是這樣嗎?乙個類的繼承,比如a作為父類,b c要繼承於它,那為什麼用a作為父類呢,是因為a能提煉出bc的共同之處,b c繼承a,那麼它們就要有a所有屬性,這樣才有繼承的意...
C 關於類(vector)的問題
你的 沒什麼大問題,只是有兩個地方需要修改一下,如下 見註釋 include include include using namespace std 只需要使用此句就可以了 using std cin using std cout using std endl using std string us...