在C++中,声明和定义是两个不同的概念。
声明(Declaration)
声明是告诉编译器关于变量、函数等的存在以及它们的类型,但并不提供实际的存储空间或函数体。例如,你可以在程序的不同位置声明一个函数或者类,以便让其他部分知道它存在。声明通常会使用关键字extern
(如果是在头文件中声明但在源文件中定义)或typedef
。
// 声明一个整型变量
int myVar;// 声明一个函数
void printMessage();// 在头文件中声明一个类
class MyClass;
定义(Definition)
定义则是实际创建变量或函数的过程,包括分配内存给变量、给出函数的具体实现和构造/析构函数等内容。定义通常只能在一个特定的位置,比如在函数内部或源文件中。
// 在源文件中定义变量并初始化
int myVar = 0; // 定义函数
void printMessage() {std::cout << "Hello World!" << std::endl;
}// 在源文件中定义类
class MyClass {
public:// 构造函数和成员变量的定义
};