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

2021-03-19 18:25:20 字數 373 閱讀 1775

1樓:匿名使用者

我想你把函式的定義和宣告兩個概念混淆了,可以定義在外面,但是宣告肯定是在類內啊。

// 標頭檔案

class a

// 定義檔案

inline void a::foo(int x, int y) // 表明是一個行內函數

// 若是定義在類內,就是隱式內聯了,比如class a}

2樓:

可以,不過類內必須要有函式宣告

mfc自動生成的文件/檢視程式就有這樣的函式,一般類的成員函式,寫在類外的部分稱為定義,即函式的實現**!只要#include相應的標頭檔案,類的公開成員就可以使用了!私有成員,類自己和友元可用,保護成員子類也可用!

c成員函式是不是都是行內函數,內聯成員函式的優缺點 C

當然不是,或者說,除非特殊的inline宣告,類成員函式都不是行內函數。內聯成員函式的優缺點 c 行內函數必須是和函式體申明在一起,才有效。像這樣的申明inline tablefunction int i 是沒有效果的,編譯器只是把函式作為普通的函式申明,我們必須定義函式體。inline table...

類中宣告的函式是行內函數嗎?是類內宣告類外定義啊

在類中定義的成員函式全部預設為行內函數。可以顯示加上 inline 識別符號。或者不加 在類中宣告的成員函式,如果沒加inline。則在類外定義該成員函式時加了inline,該成員函式也為行內函數。綜上所述 不管是宣告還是定義,只要看見有 inline 都為內聯 可以的,區別是類中您給出了函式體,不...

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

類有成員變數和成員函式。而函式中,不是任何一個類的成員的函式,就是非成員函式。例如 class a 這個就是成員函式。void f2 這個也是成員函式宣告,其實現在類的外部。void a f2 這個是成員函式的實現。void f3 這個就是非成員函式,它不屬於a,也不屬於任何一起其他的類。類的成員函...