C++类成员函数在.cpp中设置成inline后无法解析的问题
生活随笔
收集整理的這篇文章主要介紹了
C++类成员函数在.cpp中设置成inline后无法解析的问题
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
內聯函數:告知編譯器在進行有內聯標識的函數調用時將函數體部分在調用處展開。這樣做可以消除函數傳參(堆棧調用)的負擔,提高了函數的調用效率。
而且inlining的函數并不存在,因為已經被展開了。
如果需要定義一個內聯函數,需要在函數體定義的地方使用inline關鍵字標識,寫在函數聲明處是沒有意義的。
如
int func(int); //函數聲明inline int func(int a) //函數定義 { return ++a; }int main() {std::cout << func(1) << endl; //函數調用return 0; }會被展開成 int main() {std::cout << ++1 << endl;return 0; }消除了參數a的傳遞過程帶來的效率問題。
1.在C++類的實現過程中,如果想要將成員函數設置成inline內聯函數的話,需要在類的頭文件.h中定義這個函數,不能在相應的.cpp文件中定義。
2.在類內部定義的成員函數默認設置成內聯函數。
3.inline內聯關鍵字只是給編譯器一個建議,有些函數即使有inline標識,也不會被設置成內聯函數。
4.有些函數即使沒有inline標識,編譯器在優化時也有可能將這個函數作為內聯函數來處理。
總結
以上是生活随笔為你收集整理的C++类成员函数在.cpp中设置成inline后无法解析的问题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C++模板类的虚函数成员
- 下一篇: C++学习笔记-----存在多态调用时,