1. 程式人生 > >關於C++在編碼時的一些細節

關於C++在編碼時的一些細節

  1. 函式不能依賴於filescope物件,否則會造成重用困難
  2. 預設引數右側的引數也必須為預設
  3. 定義(函式定義,類定義)只能有一個,否則編譯時沒有問題,link時報有多個定義
  4. 宣告 (變數,函式名)只能有一個,否則編譯時會報symbol redefine
  5. inline是在編譯時展開,所以要在標頭檔案中定義,否則在編譯時無法展開。寫在CPP中的定義是用來link的。
  6. 含非inline函式的標頭檔案被多次包含,link時會報symbol重定義,因為有多份實現。
  7. 如果像把函式定義在標頭檔案中,又要防止重定義,可以用inline函式。
  8. static被定義於標頭檔案中,包含這個標頭檔案的cpp會各自為自己生成一份static變數。
  9. static被放置於class中則不同,因為class中的static宣告和定義分開,class不允許static宣告時加上定義,所以標頭檔案包含多次也只有一個定義,始終只有一個變數