一个C++函数,如果没有函数声明而只有函数定义,程序照样运行,但要求这个函数定义必须放在main函数之前,否则编译按照从上到下的顺序扫描下来,就会出现编译器不认识它的情况。
如果一个程序同时有函数声明和函数定义,那么函数定义不允许有默认参数,默认参数只能放在函数声明里。如果程序没有函数声明,只有函数定义,函数定义才能有默认参数。有了默认参数,其实就是有了一个不带参数的重载版本。
#include "stdafx.h" #include <iostream> using namespace std; void func(int a = 5); // 函数声明 int _tmain(int argc, _TCHAR* argv[]) { func(); return 0; } void func(int a){ // 函数定义 cout << a << endl; }