這個C 函式的作用是什麼(內詳)

2021-04-22 15:22:52 字數 5723 閱讀 5813

1樓:匿名使用者

如果抄沒有第二個函式的bai話,就無法使用後自增操作了du。不過應該寫fraction y = *this;

可以用zhi

如下dao**檢驗:

int main()

2樓:匿名使用者

fraction& fraction::operator ++ ()它相抄當bai於++a,是前置++;du

fraction fraction::operator ++ (int)

這個函式也是自增zhi1 它相當於a++是個後置dao++;

3樓:匿名使用者

自增符號分為前自增和後自增

第一種實現的是後自增,第二種實現的是前自增。兩個過載函式的返回值不同。

而且貌似你的第二種寫法寫錯了。。

第一句要有賦值 fraction y = *this;

c++行內函數具體有什麼作用?

4樓:匿名使用者

行內函數在編譯的時候將不進行函式呼叫,編譯器將行內函數的**貼上在呼叫(形式上呼叫)處,可以提高效率。

行內函數只能是**很少很簡單的函式,因為如果一個很大很複雜的函式即使設為內聯,編譯器也將自動設定該函式為非內聯。

5樓:匿名使用者

行內函數inline:引入行內函數的目的是為了解決程式中函式呼叫的效率問題,這麼說吧,程式在編譯器編譯的時候,編譯器將程式中出現的行內函數的呼叫表示式用行內函數的函式體進行替換,而對於其他的函式,都是在執行時候才被替代。這其實就是個空間代價換時間的i節省。

所以行內函數一般都是1-5行的小函式。在使用行內函數時要留神:1.

在行內函數內不允許使用迴圈語句和開關語句;2.行內函數的定義必須出現在行內函數第一次呼叫之前;3.類結構中所在的類說明內部定義的函式是行內函數。

6樓:溪貝0號

和普通函式一樣, 在函式前面加上inline 起到裝b的作用

7樓:匿名使用者

可以稍微加快執行速度,但會增加**長度

8樓:翁格虎嘉悅

行內函數就是小型函式,犧牲空間來節省函式呼叫的開銷,一般用作比較小的函式,即函式內部沒有迴圈、開關語句等

簡單的說,就是加快程式執行效率

9樓:斐冬刑浩宕

它是編譯在堆記憶體裡的,直到程式結束後它才失效,這樣能加快執行的速度,效率更高,但是行內函數一定要是短小的,否則只能起到反作用.

10樓:強文司天薇

對於一個耍要多次呼叫到的函式,而且比較小的話.最好是用行內函數.而是一個大的函式的話,可以用巨集.

行內函數其實是提示編譯器把相應的**"內聯",而不像巨集是在編譯前進行簡單的字元替換.內聯有進行語法和語義檢查的功能

c++的函式作用

11樓:手機使用者

物件的時候首先執行的函式 可以有引數 可以無引數 也可以過載 你可以發現你在定義類的成員的時候無法賦初始值 建構函式的很重要的一個用處就是初始化裡面的成員變數

解構函式正好相反 當你這個類的物件不存在的時候 先執行解構函式 然後再釋放這個物件所佔用的記憶體 比如說定義在某個函式裡的類的物件 當這個函式體結束的時候 先執行這個類的物件的解構函式 然後釋放該類所佔用的記憶體 現在解構函式最大的用處就是 比如說你在建構函式裡用了 new這個函式 申請了一塊堆記憶體 (或者用malloc 一樣的作用)如果你不釋放這塊記憶體就會造成記憶體洩露 這個時候就應該在解構函式裡寫一個delete函式釋放申請的空間(如果是malloc申請的則用free()函式)別的用處就看你自己想象了。。。

另外還有一點應該注意 先構造後析構 比如你申請了類temp的兩個物件temp a;temp b;則析構的時候首先析構b,然後再析構a,如果是繼承的話 則先構造子類 然後構造父類 先析構父類 後析構子類 你可以自己嘗試寫點兒句子 可以更加了解建構函式解構函式的順序及作用。。。

12樓:匿名使用者

最後兩個函式有什麼作用的回答:

為了保護資料 即類中定義的2個變數 advisor advisor;

int qualifiergrade;不能被外界改寫和呼叫 把資料封裝包裹起來

class graduatestudent:public student

protected: //這裡寫的是protected;所以沒有那兩個函式程式一樣可以執行

//若改為private;就一定要用那2個函式了

advisor advisor;

int qualifiergrade;

}; 推薦您一本書 c++大學教程 這本書講的特別詳細明白 而且都是完整可執行的**

不是c++ primer那種小片段

對類講的也特別好 您閱讀後就明白了 當時就是一位朋友推薦給我的

13樓:匿名使用者

1,起什麼作用?這個不好說,這不屬於c++問題了

2.這兩個函式就是提供的一個介面,防止直接使用類成員,造成破壞封裝性

c++中虛擬函式的作用是什麼?它應該怎麼用呢?

14樓:莫斯利安純牛奶

c++中虛擬函式的作用:

1、簡單地說,那些被virtual關鍵字修飾的成員函式,就是虛擬函式。

2、實現多型性,多型性是將介面與實現進行分離。

3、當基類指標指向一個子類物件,通過這個指標呼叫子類和基類同名成員函式的時候,基類宣告為虛擬函式就會調子類的這個函式,不宣告就會呼叫基類的。

c++中虛擬函式的用法:

1、比如你有個遊戲,遊戲裡有個虛基類叫「怪物」,有純虛擬函式 「攻擊」。

2、派生出了三個子類「狼」「蜘蛛」「蟒蛇」,都實現了自己不同的「攻擊」函式,比如狼是咬人,蜘蛛是吐絲,蟒蛇把你纏起來。

擴充套件資料:

使用虛擬函式的注意事項:

1、包含虛擬函式的類指標列表會增大。

2、虛解構函式

(1)解構函式的作用是在物件撤銷之前做必要的「清理現場」的工作。

(2)當派生類的物件從記憶體中撤銷的時候,會先先呼叫派生類的解構函式然後再呼叫基類的解構函式。

(3)當我們new一個臨時物件時,若基類中包含解構函式,並且定義了一個指向該基類的指標變數。

3、建構函式不能宣告為虛擬函式

建構函式不能宣告為虛擬函式。如果宣告為虛擬函式,編譯器會自動報出。

4、不在析構或者構造過程中呼叫虛擬函式

在解構函式或者是建構函式中,我們絕對不能呼叫虛擬函式。即使,我們在建構函式或者解構函式中呼叫虛擬函式,也不會下降至派生類中呼叫函式。

15樓:木子青耶

虛擬函式的作用:

允許在派生類中重新定義與基類同名的函式,並且可以通過基類指標或引用來訪問基類和派生類中的同名函式。

虛擬函式的使用方法是:

1.在基類用virtual宣告成員函式為虛擬函式可以在派生類中重新定義此函式,為它賦予新的功能,並能方便地被呼叫。

在類外定義虛擬函式時,不必再加virtual。

2.在派生類中重新定義此函式,要求函式名、函式型別、函式引數個數和型別全部與基類的虛擬函式相同,並根據派生類的需要重新定義函式體。

在派生類重新宣告該虛擬函式時,可以加virtual,也可以不加,但習慣上一般在每一層宣告該函式時都加virtual,使程式更加清晰。

3.如果在派生類中沒有對基類的虛擬函式重新定義,則派生類簡單地繼承其直接基類的虛擬函式。

4.定義一個指向基類物件的指標變數,並使它指向同一類族中需要呼叫該函式的物件。

通過該指標變數呼叫此虛擬函式,此時呼叫的就是指標變數指向的物件的同名函式;

虛擬函式與指向基類物件的指標變數的配合使用,就能方便地呼叫同一類族中不同類的同名函式,只要先用基類指標指向即可。

16樓:匿名使用者

c++中虛擬函式的作用:

1、為了方便使用多型特性,我們常常需要在基類中定義虛擬函式。

2、在很多情況下,基類本身生成物件是不合情理的。例如,動物作為一個基類可以派生出老虎、孔雀等子類,但動物本身生成物件明顯不合常理。

為了解決上述問題,引入了純虛擬函式的概念,將函式定義為純虛擬函式(方法:virtual returntype function()= 0;),則編譯器要求在派生類中必須予以重寫以實現多型性。

同時含有純虛擬函式的類稱為抽象類,它不能生成物件。這樣就很好地解決了上述兩個問題。

c++中虛擬函式的用法:

比如你有個遊戲,遊戲裡有個虛基類叫「怪物」,有純虛擬函式 「攻擊」。然後派生出了三個子類「狼」「蜘蛛」「蟒蛇」,都實現了自己不同的「攻擊」函式,比如狼是咬人,蜘蛛是吐絲,蟒蛇把你纏起來。

然後出現好多怪物的時候就可以定義一個 虛基類指標陣列,把各種怪物的指標給它,然後迭代迴圈的時候直接 monster[i]->attack() 攻擊玩家就行了,大概見下圖:

17樓:匿名使用者

c++中虛擬函式的作用:

1、方便使用多型特性。

2、在很多情況下,基類本身生成物件是不合情理的。例如,動物作為一個基類可以派生出老虎、孔雀等子類,但動物本身生成物件明顯不合常理。

為了解決上述問題,引入了純虛擬函式的概念,將函式定義為純虛擬函式(方法:virtual returntype function()= 0;),則編譯器要求在派生類中必須予以重寫以實現多型性。同時含有純虛擬函式的類稱為抽象類,它不能生成物件。

這樣就很好地解決了上述兩個問題。

宣告瞭純虛擬函式的類是一個抽象類。所以,使用者不能建立類的例項,只能建立它的派生類的例項。

純虛擬函式最顯著的特徵是:它們必須在繼承類中重新宣告函式(不要後面的=0,否則該派生類也不能例項化),而且它們在抽象類中往往沒有定義。

定義純虛擬函式的目的在於,使派生類僅僅只是繼承函式的介面。

3、純虛擬函式的意義,讓所有的類物件(主要是派生類物件)都可以執行純虛擬函式的動作,但類無法為純虛擬函式提供一個合理的預設實現。所以類純虛擬函式的宣告就是在告訴子類的設計者,「你必須提供一個純虛擬函式的實現,但我不知道你會怎樣實現它」。

虛擬函式的使用方法是:

1、在基類用virtual宣告成員函式為虛擬函式。這樣就可以在派生類中重新定義此函式,為它賦予新的功能,並能方便地被呼叫。在類外定義虛擬函式時,不必再加virtual。

2、在派生類中重新定義此函式,要求函式名、函式型別、函式引數個數和型別全部與基類的虛擬函式相同,並根據派生類的需要重新定義函式體。

c++規定,當一個成員函式被宣告為虛擬函式後,其派生類中的同名函式都自動成為虛擬函式。因此在派生類重新宣告該虛擬函式時,可以加virtual,也可以不加,但習慣上一般在每一層宣告該函式時都加virtual,使程式更加清晰。如果在派生類中沒有對基類的虛擬函式重新定義,則派生類簡單地繼承其直接基類的虛擬函式。

3、定義一個指向基類物件的指標變數,並使它指向同一類族中需要呼叫該函式的物件。

4、通過該指標變數呼叫此虛擬函式,此時呼叫的就是指標變數指向的物件的同名函式。通過虛擬函式與指向基類物件的指標變數的配合使用,就能方便地呼叫同一類族中不同類的同名函式,只要先用基類指標指向即可。

如果指標不斷地指向同一類族中不同類的物件,就能不斷地呼叫這些物件中的同名函式。這就如同前面說的,不斷地告訴計程車司機要去的目的地,然後司機把你送到你要去的地方。

C 中純虛擬函式和空的虛擬函式各自的作用是什麼呢?他們應該怎麼

虛擬函式是baic 多型的一種表現 du例如 子類繼承了 zhi父類的一個函式dao 方法 內 而我們把父類容的指標指向子類,則必須把父類的該函式 方法 設為virturl 虛擬函式 使用虛擬函式,我們可以靈活的進行動態繫結,當然是以一定的開銷為代價。如果父類的函式 方法 根本沒有必要或者無法實現,...

鼓室的作用是什麼,耳膜的作用是什麼?

對耳蝸內的外淋巴的波動具有緩衝作用。鼓室介於外耳與內耳之間,是顳骨巖部內的一個不規則的小氣腔,其外側壁為鼓膜,內側壁即內耳的外壁。內側壁上有兩個小孔 上方的孔呈卵圓形,通向內耳的前庭,稱前庭窗,被鐙骨底封閉 下方的孔為圓形,與耳蝸的起始部相接,稱蝸窗,活體時被第二鼓膜封閉,此膜對耳蝸內的外淋巴的波動...

氣球作用是什麼,吹氣球的作用是什麼?

吹氣球為深呼吸運動,能增加人的肺活量,促進新陳代謝,消耗能量和脂肪,起到 作用。實踐證明,這種運動對去除多餘脂肪十分有效。堅持練習可使婦女變得苗條,胸部隆起,曲線優美。因此,吹氣球 法在歐洲一些國家已得到許多女性的青睞。一般來講,盡力吸氣,再盡力撥出形成肺活量,而肺活量與人體的身高 體重 胸圍和體格...