什麼是類的成員函式和非成員函式

2023-03-09 04:50:06 字數 1168 閱讀 6757

1樓:匿名使用者

類有成員變數和成員函式。而函式中,不是任何一個類的成員的函式,就是非成員函式。例如:

class a; /這個就是成員函式。

void f2();這個也是成員函式宣告,其實現在類的外部。

void a::f2(){這個是成員函式的實現。

void f3(){這個就是非成員函式,它不屬於a,也不屬於任何一起其他的類。

2樓:過客守望者

類的成員函式:

類的成員函式描述的是類的行為,是程式演算法的實現部分,是對封裝的資料進行操作的方法。類的成員函式的原型要寫在類體中,原型說明了函式的參數列和返回值型別。而函式的定義一般在類外面,也可以直接在類內部定義。

前者與普通函式不同的是,實現成員函式時要指明類的名稱,具體形式為:

返回值型別 類名 ::函式成員名(參數列);

而後者一般為一些短小的函式(5行以內),也就是行內函數。

沒有類的非成員函式的說法。

3樓:愛吃魚的蟑螂

在類定義時候大括號裡面寫的函式是成員函式,其他的就是非成員函式,希望對你有幫助!

4樓:匿名使用者

在類中受 private,public,protected控制的函式,叫成員函式,其他的函式都叫非成員函式。

成員函式為什麼有的在類內定義有的在類外定義

5樓:風若遠去何人留

不管是類內定義, 還是類內宣告類外定義,都是合法的。

一般來說,當類成員函式的函式體比較簡短時, 定義在類內,可以減少**量。比如只有一行的。

當函式體較長時,定義在類外, 這樣可以增加類定義的可讀性。相信你也不願意找一個類成員是如何宣告的,而去翻幾十上百行**。

另外,如果是多檔案工程,尤其是封裝成庫的情況下,為了穩定及保護, 大多數成員會定義在原始檔,而宣告放在標頭檔案。釋出庫的時候保證類內成員實現不會被修改。

6樓:我的名字司耀輝

這個問題,如果要考慮內聯的話,在類內定義的函式不管加不加inline這個關鍵字,都是被認為是行內函數,但是如果在類內宣告在類外定義,就可以不是行內函數。 行內函數一般不是我們期望看到的。還有就是**可讀性比較差,所以最好的方式就是在類內進行宣告,然後在類外進行定義,這樣就可以了。

c成員函式的行內函數能否在類外宣告

我想你把函式的定義和宣告兩個概念混淆了,可以定義在外面,但是宣告肯定是在類內啊。標頭檔案 class a 定義檔案 inline void a foo int x,int y 表明是一個行內函數 若是定義在類內,就是隱式內聯了,比如class a 可以,不過類內必須要有函式宣告 mfc自動生成的文件...

為什麼C中的過載操作符函式能定義成非成員函式

可以定義成友元函式,友元函式就不是成員函式了比如,類int中的過載 專 int operator int a 和友元函式是等價的 如果屬有幫助記得采納 謝謝 c 中,過載運算子的函式可以定義為類的成員函式,但是書上說在使用此過載運算子的時候,運算子左邊必 這個是單目的 字首寫法,前面加上運算子的話,...

C空類,預設產生哪些成員函式

一般進行成員變數初始化用兩種方法第一種是通過在建構函式內賦值classpoint point intx,inty private int x,y 第二種是使用初始化列表classpoint point intx,inty x x y y private int x,y 這兩種用法是有區別的 一 在有...