1樓:匿名使用者
如果只有乙個的話「:」,那你說的那個函式應該是個成員函式(如果只有乙個的話你看下是不是)。
『:』 後面是初始化列表。
class bb
void cc(int i);
};void bb::cc(int i):c(i){}你看下你說的那個是不是上面兩種寫法?
這種方法是一種非常常用的初始化方法,有的地方非用不可,比如初始化引用等......
2樓:匿名使用者
我只知道 『::』符號是域限定符,就是你要引用某個類的方法時就用這個符號。
如類a有個get()方法可以這樣用:a::get()
3樓:匿名使用者
我想你現在需要明白乙個簡單的道理,就是棧和堆的問題,計算機中棧是有系統(編譯器)管理的,它會自動為你分配和釋放記憶體,但是缺點是他太小了,很容易浪費完,另外一種是堆記憶體,他們容量很大,但是記憶體需要程式設計師自己去維護,就是你自己手動申請記憶體自己手動釋放記憶體,堆記憶體另外乙個好處是他沒有變數作用域限制,只要你得到他的位址,你在那操作它都行。q
4樓:唯我最逍遙
冒號不知道
就知道 點 和 雙冒號(作用域運算子)
有這種 a>b?a:b
5樓:
你說的是連續2個:???
這個是api函式吧。
c++ 類名稱後帶&符號是什麼意思
6樓:匿名使用者
c++類名稱後面帶bai&符號若
宣告一du個變數則該類zhi宣告變數為引用dao變數,若類名專稱後面帶&符號放在
屬乙個方法的前面,則該方法返回乙個該型別的變數引用。如下面**:
class a
;a a;//宣告類變數a
a &b = a; //宣告乙個引用變數b=a引用引入了物件的乙個同義詞。定義引用的表示方法與定義指標相似,只是用&代替了*。引用(reference)是c++對c語言的重要擴充。
引用就是某一變數(目標)的乙個別名,對引用的操作與對變數直接操作完全一樣。引用的宣告方法:型別識別符號 &引用名=目標變數名;
7樓:匿名使用者
是引用的意思,一bai般對於類du或者結構體變數,如果直zhi接返回,dao是有些問題的,回所以我們一般
用指標或答者引用返回。c++推薦用引用返回,因為其實效率上和指標類似,又避免了指標的一些問題。你看多了就習慣了。
比如,要把這個類增加個過載運算子<<,也是這樣寫:
class screen
...然後你使用的時候可以這樣寫:class screen s; cout << s << endl;
這樣寫的好處就是你把變數當成普通的結構體或者類變數用就行,而且效率很高。
8樓:匿名使用者
你可以把&看出引bai用變數(類
du似於*和其它型別zhi搭配),就是dao像下面最簡單例子#include
#include
using namespace std;
class people
int grade;
string name;
};int main()
這段**回(現場寫答
的,沒編譯器編,應該沒問題)允許後就可以知道結果了,也不多說了。然後呢,就是用這個的好處除了顯而易見的之外,還可以提高效率(比一般的引數傳遞,如果不需要改變,加上const)。如有問題,歡迎**,我q798883827
c++中的::符號的作用
9樓:祜風
1、::是c++裡的「作用域運算子」。作用域符號::的前面一般是類名稱,後面一般是該類的成員名稱。
2、其作用主要有三點:
(1)標識作用域的級別;
:: 用在全域性函式或變數前,表示是全域性函式或變數(2)標識成員屬於哪個類
a,b表示兩個類,在a,b中都有成員member。那麼a::member就表示類a中的成員member
b::member就表示類b中的成員member(3) 限定成員的作用範圍
應用於命名空間namespace定義的實體後面。
10樓:匿名使用者
::域作用符,第乙個::表示listen用的全域性函,這麼用是因為在類裡或某個命名空間裡可能存在著和這個全域性函式相同名的函式,如果不用::
,編譯器會預設呼叫類裡或某個命名空間裡的函式,加上它則表示呼叫的是那個全域性的listen。
11樓:匿名使用者
在類裡面 這個事析構函式 如果不加 系統會預設設定乙個析構函式 系統預設設定的析構函式為空值
析構函式的呼叫時這樣的:
越早宣告越晚呼叫 例如這個題目: 它在建立類b的物件b時, 呼叫類b的建構函式 ,而該建構函式 自動先呼叫 基類的建構函式 。當完成 建立物件後 ,主函式 結束, 開始 析構 主函式 ,然後 析構 派生類b ,然後 再析構 基類 a。
然後此程式讀完。
函式呼叫的過程是: a() b() ~b() ~a()全部過程如上 則輸出結果是 1342
12樓:
作用域限定符或者稱作用域運算子
13樓:
標識該函式是在全域性命名空間
14樓:匿名使用者
這個是作用域識別符號,作用既是來訪問所在作用域裡的變數,函式等內容。這裡是表示呼叫api函式,呼叫api函式的方式既是這樣。
如何定義乙個符號函式(c++)
15樓:水上漂湯
int sign(int x)
然後在main裡面這樣用:y = sign(x);
16樓:匿名使用者
int funx(int x)
else if (0 == x)
else if (x < 0)
return y;}
17樓:兔子和小強
int sgn(int x)
函式裡面的引數後面&符號是什麼意思,比如int look(int account&);為什麼在引數後面
18樓:金色潛鳥
c/c++ 這樣寫是錯的。
函式原型可以是:
是 引用,int 型引數
int look(const account&); --- 省了引數名,引數是引用, 引數型別 是 const account (前面當然已有過 account 的定義,例如 #define account int 或 typedef ....)
19樓:點點點迴圈
表示這是乙個引用,函式內改變account的數值,則原引數也會被改變 另外*表示是指標
20樓:flystar默
寫錯了吧 應該在int後邊的吧
請問c++中的引用符號「&」到底怎麼使用?
21樓:苑
c++中的引用符號「&」的使用方法是,型別識別符號 &引用名=目標變數名。
c++是c語言的繼承,它可進行過程化程式設計,又可以進行以抽象資料型別為特點的基於物件的程式設計,還可以進行以繼承和多型為特點的物件導向的程式設計。引用(reference)就是c++對c語言的重要擴充。引用就是某一變數(目標)的乙個別名,對引用的操作與對變數直接操作完全一樣。
22樓:西西哩的小馬甲
引用就是某一變數(目標)的乙個別名,對引用的操作與對變數直接操作完全一樣。
引用的宣告方法:型別識別符號 &引用名=目標變數名;
【例1】:int a; int &ra=a; //定義引用ra,它是變數a的引用,即別名 ;
說明:(1)&在此不是求位址運算,而是起標識作用。
(2)型別識別符號是指目標變數的型別。
(3)宣告引用時,必須同時對其進行初始化。
(4)引用宣告完畢後,相當於目標變數名有兩個名稱,即該目標原名稱和引用名,且不能再把該引用名作為其他變數名的別名。 ra=1; 等價於 a=1;
(5)宣告乙個引用,不是新定義了乙個變數,它只表示該引用名是目標變數名的乙個別名,它本身不是一種資料型別,因此引用本身不佔儲存單元,系統也不給引用分配儲存單元。
故:對引用求位址,就是對目標變數求位址。&ra與&a相等。
(6)不能建立陣列的引用。因為陣列是乙個由若干個元素所組成的集合,所以無法建立乙個陣列的別名。
23樓:匿名使用者
引用是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)使用引用的時機。流操作符《和》、賦值操作符=的返回值、拷貝建構函式的引數、賦值操作符=的引數、其它情況都推薦使用引用。
C語言小數點後面的,C語言小數點後面的
1f為什麼不能用,程式設計這種東西就要求靈活,只要能實現想要的效果,什麼方法都無所謂.難道別人要打你,你能說我沒學過打架,你不要打我麼 除了.1f,還可以用 g,g是在科學計數法和普通方法之間自動選擇最短的形式輸出.當然,將數放到字串中也行,算是個比較 笨 的方法,tyoukill的方法也有點問題,...
函式引數後面的省略號是什麼意思,C 函式的引數中包含 省略號是什麼意思 ?
希聲和寡 這個是可變引數的用法。va list相關一般包含以下4個操作 va list xx 設定傳入的引數的指標va start 初始化引數指標 va arg 通過棧操作,根據偏移量讀取引數值va end 引數讀取完畢 va start parglist,szformat 上面的szformat就...
c 類中成員函式的問題
1.你這基礎實在薄弱,基本概念都還沒懂 2.下面的void m f1 m m 是對類裡面 static void f1 m m 函式的實現。m m 的意思定義一個m的物件m.也就是這個函式的引數必須是一個m的物件。3.m p 5 q 10 這裡的定義兩個m物件 括號裡的值是傳遞給建構函式的,即呼叫此...