首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> C++ >> 關於C++

C++ 中 definition 與 declaration 的區別詳解

     編輯:關於C++

核心定義

Definition(定義)為實體分配存儲/提供實現;Declaration(聲明)僅介紹名字和類型。每個定義都是聲明,但聲明不一定是定義。

僅聲明非定義的 11 種情形

情形示例說明
extern 變量無初始化extern const int a;僅聲明;extern const int b = 1; 是定義
函數聲明無函數體int f(int);無花括號體
函數參數聲明int f(int x); 中的 x參數在函數定義時才定義
類靜態成員聲明static int i; 在類內類外需 int S::i; 定義
類前向聲明struct S;不完整類型
模板參數template參數非實體
顯式特化聲明template<> struct A;僅聲明特化存在
typedef / using 別名typedef S S2;不創建新類型
枚舉前向聲明enum Color : int;C++11 固定底層類型
using-declarationusing N::d;引入名字非定義

實戰意義

  • 頭文件放聲明,源文件放定義,避免重複定義鏈接錯誤。
  • extern "C" 影響鏈接符號,非定義。
  • 理解區別有助於正確使用 inline、模板、靜態成員等。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved