inline那些事兒

2021-10-23 16:20:10 字數 802 閱讀 1298

標頭檔案中宣告方法

class a

; void f1(int x); ///< 宣告後,要想成為內聯函式,必須在定義處加inline關鍵字。

};

實現檔案中定義內聯函式:

#include #include "inline.h"

using namespace std;

/** * @brief inline要起作用,inline要與函式定義放在一起,inline是一種「用於實現的關鍵字,而不是用於宣告的關鍵字」

* * @param x

* @param y

* * @return

*/int foo(int x,int y); // 函式宣告

inline int foo(int x,int y) // 函式定義

// 定義處加inline關鍵字,推薦這種寫法!

inline void a::f1(int x)

int main()

virtual ~base() {}

};class derived : public base

};int main()

),所以 delete 時,會先呼叫派生類(derived)析構函式,再呼叫基類(base)析構函式,防止記憶體洩漏。

delete ptr;

ptr = nullptr;

system("pause");

return 0;

}

總結:虛函式可以內聯嗎?

鏈結那些事兒

鏈結,就是將不同部分的 和資料收集和組合成為乙個單一檔案的過程,這個檔案可被載入到儲存器中執行。鏈結可以執行於編譯時 compile time 也就是源 被翻譯成機器 時 eg.普通的鏈結器鏈結,以及靜態鏈結庫,由靜態鏈結器鏈結 也可以執行於載入時 例如動態鏈結庫的載入時鏈結 也可以執行於執行時 r...

指標那些事兒

1.野指標 也叫懸擺指標,迷失指標 野指標是導致bug的罪魁禍首之一。對指標呼叫delete後 釋放掉了它指向的記憶體,野指標還是指向原來的位址 如果沒有重新賦值就使用它,將導致難以預料的後果。因為此時操作野指標,它指向的記憶體位址可能已經分配給其他變數在使用了。所以指標在delete之後,如果不再...

遞迴那些事兒

include include include include 求階乘 int fac int n if n 1 求累加 int add int n 求字串長度 int my strlen const char dest int main 遞迴注意事項 遞迴雖然經典,但是也有他的缺點 第一 遞迴是反...