我讀ODR並作爲規則說"In the entire program, an object or non-inline function cannot have more than one definition"
,我嘗試了以下多重定義...一個定義規則 - 內聯函數
file1.cpp
#include <iostream>
using namespace std;
inline int func1(void){ return 5; }
inline int func2(void){ return 6; }
inline int func3(void){ return 7; }
int sum(void);
int main(int argc, char *argv[])
{
cout << func1() << endl;
cout << func2() << endl;
cout << func3() << endl;
cout << sum() << endl;
return 0;
}
file2.cpp
inline int func1(void) { return 5; }
inline int func2(void) { return 6; }
inline int func3(void) { return 7; }
int sum(void) { return func1() + func2() + func3(); }
它的工作原則如下。我可以有多個內聯函數的定義。
- 非內聯函數鏈接和內聯函數鏈接有什麼區別?
- 鏈接器如何區分這兩者?
他引用的內容表示一個對象或*非內聯函數不能有多個定義。 –