c 中建立物件時和的區別,c 中建立乙個物件時 和 的區別

2022-12-23 14:16:15 字數 2654 閱讀 9052

1樓:匿名使用者

1. 物件.方法 (物件是乙個例項:qtextedit textedit);2. 物件->方法(物件是乙個指標) ;

3. layout->addwidget(textedit); layout是個指標所以用 "-> " , 而addwidget( qtextedit* ) 這個方法的形參是個指標。所以傳進去的 textedit 是(qtextedit *textedit = new qtextedit;) 指標。

所以是正確的。

是個例項物件 所以用" .

" ; 而addwidget的形參是指標,所以,傳物件進去是不行的,加乙個"&",是傳這個物件的位址……

總的來說就是:可以把指標傳給指標,也可以把位址傳給指標; 個人愚見,僅供參考

2樓:匿名使用者

先回答方法二中為何用(&);這就是函式最基本的傳值還是傳址的問題,想改變實參的值必須傳位址。而且鑑於你方法一中如此使用layout->addwidget(textedit),證明addwidget()函式的引數是指標,你肯定得取位址,否則不符合函式的參數列。

這兩種方法的區別,兩種方法建立的物件所佔記憶體是一樣的。第一種自己new的物件占用的是記憶體中的「堆區」,第二種直接構造出來的物件占用的是記憶體中的「棧區」。 堆區很大,棧區比較小,如果你要建立非常多個物件當然在堆區好,但是你說單單建立乙個物件,談不上省不省記憶體之類的吧

3樓:匿名使用者

方法一,是新建乙個類的指標,在執行中才在堆中new建立指標指向的物件,物件指標的成員操作要用->操作符,用完之後最好使用delete釋放記憶體,防止由於指標的改變造成記憶體洩露;

方法二,是在執行開始就已經建立好了物件,是在執行棧中建立的,你這裡的addwidget()的引數型別明顯是傳入指標,所以要在textedit加乙個取位址符&

c++中類物件前加&和不加&有什麼區別

4樓:

加&表示引用。引用的意思就是起個別名,但還在用原來的變數。

int a=10;

int &b=a; //b是a的引用,加後對b操作就是對a操作!

b=20;

cout<

不加就不是引用。

c++中,建立無參例項物件a a;和a a();有什麼區別?

5樓:匿名使用者

a a; 定義乙個物件a

a a(); 宣告乙個無參函式a,返回值型別為a;

a(); 定義乙個臨時物件.

圓括號定義物件的語法不太統一,容易混淆,使用的時候注意一下。

c++中的new物件跟定義物件有什麼區別

6樓:匿名使用者

至於你說的什麼時候需要 比如你在某個函式中需要定義乙個物件 而且這個物件你不希望函式執行結束時就被釋放 就需要用new來開闢空間否則你定義的物件在函式結束的時候就會被釋放

7樓:匿名使用者

不用new的記憶體區域是在棧,

會自動分配空間,一般在區域性變數時使用,函式結束後會自動釋放空間,用new的內在區域是在堆,要自己手動分配空間,使用完後要手動釋放空間,

另外棧中空間的分配一般在編譯時就知道大小了,而如果要在執行時分配空間,就要使用堆了

c++中怎麼建立類物件?

8樓:

1、首先,我們需要先寫好類的定義,類的定義一般放在標頭檔案中。在此需要注意的是,類名的首字母必須要大寫。比如示例中的這個蘋果類,其第乙個字母必須是大寫的 a,而不能是小寫 a。

2、在定義類時,我們一般需要先確定好類的屬性成員。屬性成員通常作為私有型別,只能在類內直接訪問。這樣,就在一定程度上提高了類的安全性,可以有效避免類的資料在類外被第三方意外修改。

3、至於類的建構函式和析構函式,它們分別在建立類物件和銷毀類物件時呼叫。在大多數情況下,這兩個函式都是公有型別的。

4、當然,我們還可以在類中根據自己的需要新增一些自定義的功能函式。

5、類的定義寫好以後,我們接下來就需要寫類的實現。類的實現通常寫到原始檔中。請注意,在原始檔中寫類的實現時,我們務必要先包含類的定義檔案。

6、在實現類的建構函式時,我們通常所做的就是為類的資料成員賦值,進行一些初始化工作。

9樓:匿名使用者

比如:class a

呼叫的時候就寫

int num = 0;

a *a = new a(0);

把引數寫進去就可以了

c++定義乙個物件和new乙個物件的區別與聯絡

10樓:陳釗翔

定義的物件是區域性變數,

new乙個物件,他的指標是區域性變數但是這個物件不是區域性變數。

簡單的說在乙個函式裡 int n=5;出來函式n就不存在了。int *n=new int; *n=5;出了函式雖然n不存在了,但是如果沒有delete n;n所指的那個地方還是存在乙個整數5。

11樓:可愛的任剛

then follow thei

c中怎樣建立mdi子窗體,C 中怎樣建立MDI子窗體?

先在主窗體中設定 ismdicontainer為true 範例 給主窗體中拉進乙個botton 雙擊 寫 如下 form2 myform2 new form2 myform2.mdiparent this myform2.show myform2是例項化子窗體的物件 嘿嘿 希望你看了以後能明白 我在...

C中,假設類A有帶引數建構函式B,建立例項時需要

不能 類中bai可以沒有建構函式,構du造函式的作用只 zhi是對dao 類的資料成員初始化 引數專列表 和賦值屬作用,而不是與能不能例項乙個物件相關,如果沒有建構函式,定義個物件,記憶體照樣會給這個物件分配空間,只不過沒有被初始化和賦值。對於你沒有顯示的定義建構函式那麼編譯器只會在以下4種情況合成...

C如何給動態建立窗體中的按鈕新增事件

單擊該按鈕時,的內容清空。重新新增新的內容無效按鈕1 無效button2的 gbi treeview2.visible true 無效的gbi 1 先在觸發按鈕的時候宣告乙個公用的事件 button1.click new eventhandler btn click 2 在下面編輯這個btn cli...