考虑下面的程序:html
#include <iostream> int add(int x, int y); // forward declaration of add() using function prototype int main() { using namespace std; cout << "The sum of 3 and 4 is: " << add(3, 4) << endl; return 0; }在这个程序中,咱们提出声明(),咱们称之为(),但咱们没有任何定义()。当咱们尝试编译这个程序时,视觉工做室2005快车产生以下信息: 编译… add.cpp 连接… add.obj:错误LNK2001:未解决的外部符号”(int,int,int __cdecl添加)”(?添加@ @ yahhh @ Z) add.exe:致命错误lnk1120:1未解决的疑团 你能够看到,程序编译好的,可是它没有在连接阶段(int,int,int加)没有定义。 其余类型的前向声明 前向声明是最经常使用的函数。然而,前向声明也适用于C++的其余标识符,如变量和用户自定义类型。其余类型的标识符(例如,用户定义类型)有不一样的前向声明的语法。 咱们将讨论更多关于如何在将来的经验中声明其余类型的标识符。 声明和定义 在C++中,你常常会听到“宣言”和“定义”。他们的意思是什么?你如今有足够的一个框架,以了解二者之间的差别。 定义实际实现或实例化(致使内存被分配的标识符)。下面是一些定义的例子: