在C++中,聲明和定義是不同的概念。
聲明(Declaration)是指在程序中引入一個變量、函數或類的名稱,告訴編譯器它的存在和類型,但并不分配內存空間或實現具體的功能。聲明通常是在頭文件中完成,以便在其他文件中可以引用。例如:
int add(int a, int b); // 函數聲明
extern int x; // 變量聲明
class MyClass; // 類聲明
定義(Definition)是指為變量分配內存空間,或實現函數或類的具體功能。定義通常在源文件中完成,可以有多個,但只能有一個定義。例如:
int add(int a, int b) { // 函數定義
return a + b;
}
int x = 10; // 變量定義
class MyClass { // 類定義
// 類成員定義
};
總結起來,聲明只是告訴編譯器某個名稱的存在和類型,而定義則是為該名稱分配內存空間或實現具體功能。