快瘋掉了c 中的使用為什麼有時候要加有時候不要,總結下到底什麼時候要加啊

時間 2021-08-30 10:38:45

1樓:

1、結構體的定義要加

2、類的定義要加

3、**塊和函式不加

struct x

;//加

class x

;加void fun()

//不加

}//不加

樓上說的do while 應該是在()後加即dowhile(條件);//加

2樓:匿名使用者

沒記住類的格式,給搞暈了吧 類的末尾需要』;『來結束的,像這樣class point{……

};//類寫完了需要用';'結束

class point : public mypoint;其實如果結構體、列舉、共用體 沒有變數的時候也是需要「;」的如:struct point;

enum point;

union point;

3樓:匿名使用者

只有兩種情況要加分號:

1、定義構造資料型別時要加,比如定義結構型別和定義類型別時

2、初始化普通型別變數和構造型別變數陣列時要加。

4樓:

1、結構體的定義和do_while迴圈要加struct x

;//加

dowhile(條件);//加

2、類的定義要加

class x

;加3、**塊和函式不加

5樓:匿名使用者

結構體 類 還有do..while的}要加;其他的貌似就沒什麼印象了

c++中,為什麼有時需要加void 有時候卻不要

6樓:匿名使用者

**中的一個完整的語句後面要加「;」 任何一個類的定義要加「;」 類的宣告要加「;」 對於任何一個函式的宣告也要加「;」 而對於類中成員函式的定義則不需要「加」

7樓:曠運晟塗溶

這個就跟你使用的編譯器

和c語言的機制有關,

有些編譯器

你在函式前是寫了void

型別他就會在把**彙編成機器語言的時候

自己處理這個返回的問題。而且這個問題在c++裡是嚴重不行了你說的組建是什麼?

請問c++中的引用符號「&」到底怎麼使用?

8樓:苑

c++中的引用符號「&」的使用方法是,型別識別符號 &引用名=目標變數名。

c++是c語言的繼承,它可進行過程化程式設計,又可以進行以抽象資料型別為特點的基於物件的程式設計,還可以進行以繼承和多型為特點的物件導向的程式設計。引用(reference)就是c++對c語言的重要擴充。引用就是某一變數(目標)的一個別名,對引用的操作與對變數直接操作完全一樣。

9樓:西西哩的小馬甲

引用就是某一變數(目標)的一個別名,對引用的操作與對變數直接操作完全一樣。

引用的宣告方法:型別識別符號 &引用名=目標變數名;

【例1】:int a; int &ra=a; //定義引用ra,它是變數a的引用,即別名 ;

說明:(1)&在此不是求地址運算,而是起標識作用。

(2)型別識別符號是指目標變數的型別。

(3)宣告引用時,必須同時對其進行初始化。

(4)引用宣告完畢後,相當於目標變數名有兩個名稱,即該目標原名稱和引用名,且不能再把該引用名作為其他變數名的別名。 ra=1; 等價於 a=1;

(5)宣告一個引用,不是新定義了一個變數,它只表示該引用名是目標變數名的一個別名,它本身不是一種資料型別,因此引用本身不佔儲存單元,系統也不給引用分配儲存單元。

故:對引用求地址,就是對目標變數求地址。&ra與&a相等。

(6)不能建立陣列的引用。因為陣列是一個由若干個元素所組成的集合,所以無法建立一個陣列的別名。

10樓:匿名使用者

引用是c++引入的新語言特性,是c++常用的一個重要內容之一,正確、靈活地使用引用,可以使程式簡潔、高效。

引用簡介

引用就是某一變數(目標)的一個別名,對引用的操作與對變數直接操作完全一樣。

引用的宣告方法:型別識別符號 &引用名=目標變數名;

【例1】:int a; int &ra=a; //定義引用ra,它是變數a的引用,即別名

說明:(1)&在此不是求地址運算,而是起標識作用。

(2)型別識別符號是指目標變數的型別。

(3)宣告引用時,必須同時對其進行初始化。

(4)引用宣告完畢後,相當於目標變數名有兩個名稱,即該目標原名稱和引用名,且不能再把該引用名作為其他變數名的別名。

ra=1; 等價於 a=1;

(5)宣告一個引用,不是新定義了一個變數,它只表示該引用名是目標變數名的一個別名,它本身不是一種資料型別,因此引用本身不佔儲存單元,系統也不給引用分配儲存單元。故:對引用求地址,就是對目標變數求地址。

&ra與&a相等。

(6)不能建立陣列的引用。因為陣列是一個由若干個元素所組成的集合,所以無法建立一個陣列的別名。

引用應用

1、引用作為引數

引用的一個重要作用就是作為函式的引數。以前的c語言中函式引數傳遞是值傳遞,如果有大塊資料作為引數傳遞的時候,採用的方案往往是指標,因為這樣可以避免將整塊資料全部壓棧,可以提高程式的效率。但是現在(c++中)又增加了一種同樣有效率的選擇(在某些特殊情況下又是必須的選擇),就是引用。

【例2】:

此處函式的形參p1, p2都是引用

為在程式中呼叫該函式,則相應的主調函式的呼叫點處,直接以變數作為實參進行呼叫即可,而不需要實參變數有任何的特殊要求。如:對應上面定義的swap函式,相應的主調函式可寫為:

main( )

float &fn2(float r) //定義函式fn2,它以引用方式返回函式值

void main() //主函式

} (5)在另外的一些操作符中,卻千萬不能返回引用:+-*/ 四則運算子。它們不能返回引用,effective c++[1]的item23詳細的討論了這個問題。

主要原因是這四個操作符沒有side effect,因此,它們必須構造一個物件作為返回值,可選的方案包括:返回一個物件、返回一個區域性變數的引用,返回一個new分配的物件的引用、返回一個靜態物件引用。根據前面提到的引用作為返回值的三個規則,第2、3兩個方案都被否決了。

靜態物件的引用又因為((a+b) == (c+d))會永遠為true而導致錯誤。所以可選的只剩下返回一個物件了。

4、引用和多型

引用是除指標外另一個可以產生多型效果的手段。這意味著,一個基類的引用可以指向它的派生類例項。

【例7】:

class a;

class b:public a;

b b;

a &ref = b; // 用派生類物件初始化基類物件的引用

ref 只能用來訪問派生類物件中從基類繼承下來的成員,是基類引用指向派生類。如果a類中定義有虛擬函式,並且在b類中重寫了這個虛擬函式,就可以通過ref產生多型效果。

引用總結

(1)在引用的使用中,單純給某個變數取個別名是毫無意義的,引用的目的主要用於在函式引數傳遞中,解決大塊資料或物件的傳遞效率和空間不如意的問題。

(2)用引用傳遞函式的引數,能保證引數傳遞中不產生副本,提高傳遞的效率,且通過const的使用,保證了引用傳遞的安全性。

(3)引用與指標的區別是,指標通過某個指標變數指向一個物件後,對它所指向的變數間接操作。程式中使用指標,程式的可讀性差;而引用本身就是目標變數的別名,對引用的操作就是對目標變數的操作。

(4)使用引用的時機。流操作符《和》、賦值操作符=的返回值、拷貝建構函式的引數、賦值操作符=的引數、其它情況都推薦使用引用。

11樓:匿名使用者

int x=5;

int &p=x; // p指向了x用於函式的傳址引數, int test(int &m, int n)

m是傳址,n是傳值

12樓:匿名使用者

取地址符,比如有個變數a。&a就是說a在記憶體的地址

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

13樓:莫斯利安純牛奶

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

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

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

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

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

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

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

擴充套件資料:

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

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

2、虛解構函式

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

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

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

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

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

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

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

14樓:木子青耶

虛擬函式的作用:

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

虛擬函式的使用方法是:

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

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

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

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

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

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

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

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

15樓:匿名使用者

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

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

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

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

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

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

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

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

為什麼日語的發音有時候發to有時候發do

小貝貝老師 在句子的開頭清音發to音,在句子末尾發do音 和羅馬音 to 釋義 1 xiangan 美 調和。夫 妻 愛 象徴 古代神話 2 神 安心。相安,諧調 和美。和睦。和諧。和聲。和合 和諧 古代神話中象徵夫妻相愛的兩個神 和衷共濟。2 穏 中程度。平和。平和。怒 風 滑 滑 平靜 溫和。祥...

為什麼有時候覺得愛的好幸福 有時候好累?

這個我覺得再正常不過了。根據科學解釋,愛情並不是僅僅的心理反應,還有生理反應。就是當人們相愛時,大腦會產生一種酶,對人有明顯的影響。讓人們情緒變化,患得患失,這是愛情時期的正常反應。而這種酶每次持續產生最多只有三十個月,也就是說愛情最多只有三十個月。人在二十天就可以開始乙個習慣,九十天就能形成乙個根...

為什麼我女朋友有時候挺煩我的,有時候挺不在乎我的,但是為什麼他還主動給我買衣服呢

其實單身一個人過得很好,沒有傷害,開心自由,在一起多久了,看你對他是否動心,是否值得你對他好,不喜歡人家早點分手,時間越久,大家越累,大家不和就算了,你的想也沒有用,你放棄吧,並不是什麼改變了她,也不是你的不好,只是現實太骨感了。既然失去了,就不要去糾結誰對誰錯,沒有人是錯的,也沒有人是對的,只是現...