ODR(One Definition Rule)

本詞條是多義詞,共3個義項
更多義項 ▼ 收起列表 ▲

C++單定義規則(One Definition Rule),該規則指出,變數只能有一次定義。這一定義規則(ODR)是在C++程式語言的一個重要概念。它是定義在ISO C++標準(ISO/IEC 14882)2003,3.2節。

函式定義,套用舉例,

函式定義

單定義規則(One Definition Rule):
1、在任何翻譯單元中,模板、類型、函式或對象只能有一個定義。其中一些可以有任意數量的聲明。定義提供了一個實例。
2、在整個程式中,對象或非內聯函式不能有多個定義;如果使用一個對象或函式,它必須有一個定義。您可以聲明一個從未使用過的對象或函式,在這種情況下,您不必提供定義。在任何情況下都不可能有多個定義。
3。有些東西,像type,template,和extern inline函式,可以在一個以上的編譯單元的定義。對於給定的實體,每個定義必須相同。在不同的編譯單元,非外部對象和函式是不同的實體,即使他們的名字和類型相同。

套用舉例

struct S; // declaration of S
S * p; // ok, no definition required
voidf(S&); // ok, no definition required
voidf(S*); // ok, no definition required
Sf(); // ok, no definition required - this is a function declaration only!
S s; // error, definition required
sizeof(S); // error, definition required

相關詞條

熱門詞條

聯絡我們