为什么在C++中函数要先声明然后再定义呢?

除了因为怕出错外,还有没有比如这样可以使程序更快捷的原因呢?

你也可以不声明,直接定义。但:
1、函数的作用域只是从定义的地方开始的。也就是说,在函数定义行之上,你是无法使用该函数的。而把函数的定义都放在主函数之前的话,程序会变得不清楚。所以在使用前只需用一行声明一下就可以了,明了。
2、也许函数并不都是在一个文件里使用,这时候,如果再定义一遍,不仅显得罗嗦,而且使程序的维护变得麻烦,如果修改这个函数的话,需要修改每个定义。
所以可以把函数声明放在一个头文件中,使用的时候,包含这个头文件就可以了。
3、有时候,自己写的函数需要给别人用,比如商业用途。这样的话,不能将整个函数的实现都给对方,这就需要生成一个库文件,而将函数声明放在头文件中来给对方使用。
4、有时候需要用函数声明来重新声明函数,即使前面已经声明过。这样做可以设置新的默认参数,也可以是为了屏蔽作用域外同名的函数声明。
温馨提示:内容为网友见解,仅供参考
第1个回答  2008-02-23
这是最好的习惯,为什么?因为这样就是让编译器知道你下面有什么函数“出场”,如果你不先声明,一般不会产生错误,但有可能在一个函数调用另一个时,由于先后出现顺序不同引起出错,其实“编写上”并没错。

还有就是在大型联合编程时,一般都将子函数群放在main程序后面方便阅读。这样前边要加上这些函数的声明。

声明不声明执行速度上没变化
第2个回答  2008-02-21
这是编译器的要求。

函数定义有两种方法。一种是写在主函数 main() 前面,声明和定义一起写。另一种是在主函数前面写“原型”,在主函数之后 或 在分开的 .cpp 文件里写定义。

小程序一般用前者。大程序一般用后者。库函数也用后者(库函数的原型声明放在头文件里)。
第3个回答  2008-02-21
看不懂这个问题啊
第4个回答  推荐于2016-11-18
1、函数的作用域只是从定义的地方开始的。也就是说,在函数定义行之上,是无法使用该函数的。而把函数的定义都放在主函数之前的话,程序会变得不清楚。所以在使用前只需用一行声明一下就可以了。
2、也许函数并不都是在一个文件里使用,这时候,如果再定义一遍,不仅显得罗嗦,而且使程序的维护变得麻烦,如果修改这个函数的话,需要修改每个定义。
所以可以把函数声明放在一个头文件中,使用的时候,包含这个头文件就可以了。
3、有时候,自己写的函数需要给别人用,比如商业用途。这样的话,不能将整个函数的实现都给对方,这就需要生成一个库文件,而将函数声明放在头文件中来给对方使用。
4、有时候需要用函数声明来重新声明函数,即使前面已经声明过。这样做可以设置新的默认参数,也可以是为了屏蔽作用域外同名的函数声明。

关于C++函数声明?
1、函数的作用域只是从定义的地方开始的。也就是说,在函数定义行之上,你是无法使用该函数的。而把函数的定义都放在主函数之前的话,程序会变得不清楚。所以在使用前只需用一行声明一下就可以了,明了。2、也许函数并不都是在一个文件里使用,这时候,如果再定义一遍,不仅显得罗嗦,而且使程序的...

为什么在C++中要先声明然后再定义呢?
这是编译器的问题。也是养成良好代码写作风格的好机会。对于函数和变量,都要先声明再定义。声明函数和变量,电脑会预先为其分配地址和空间。如果不这样,电脑不知道你要干什么,不给你分配空间,你定义的函数和变量往哪里放呢?举个生活中的例子:你要去上学,总要先报名吧,通知学校你要去上学,这样...

C++程序的执行顺序是什么?
执行是从 main 函数开始,但如果在main函数前存在类对象变量的声明,则可能会先调用类的构造函数来创建类对象。第一个问题,如果函数的调用语句在定义之前,则需要进行声明,告诉计算机这个程序中有这么一个函数。因为编译是从上至下进行编译的,如果函数的调用放在了这个函数定义之前(未经声明),在编译时...

c++ 类的定义必须放在main函数前么
答.不可以.原因来剖析一下:你通过声明class Cube; 放在main函数内部 但是你使用该类定义了三个对象Cube c1,c2,c3;你要明白一点.class Cube;这个声明.它仅仅是告诉编译器了哪些信息 它仅仅告诉了编译器,Cube是个类而已,别无其他.因此Cube c1,c2,c3; ,你这样来定义三个对象,由于编译器只知道它是...

C++中的自定义函数,必须放在主函数前吗?
回答:自定义函数在main函数之前,头文件之后声明。 也可以在main函数里面声明。 在main函数中能直接使用。

C++函数不需要声明
但是一旦内存紧张,就会出错,而且程序简洁性就很低。(不看到定义,还不知道原来还定义了这么一个函数!!!)还有 变量也一样,标准的都是 先申明在定义。 extern int i; \/\/申明 int i=0; \/\/定义并初始化为0 int i; \/\/定义.。。。

为什么函数要声明
函数要声明,就是说以后你需要调用这个函数,让电脑提前准备好。这个步骤可以节约很多时间,否则每次电脑运行程序,不管和你有关没关,都要把所有函数准备好,而你需要的只是其中的几个函数而已。声明和定义的区别就在于电脑里是不是有现成的程序,没有现成程序的,就要你自己定义,有的,你可以直接声明...

C++中函数声明与函数原型有什么区别
第一:声明一般在主函数之前,而定义不一定。第二:定义也是一种声明(放在主函数前面),但声明不代表定义。第三:根据c++ primer中的阐述,函数声明只是告诉系统有这样一个函数,但并不给他分配内存空间,只有当函数被定义后才会分配内存空间。第四:当然如楼上所说,定义有函数体,即{}。

求助:c++中函数一定要先声明后调用吗
如果函数定义在调用之前,就不需要声明,否则要声明。

C++中,函数的声明与函数的定义有什么区别?
写明函数体。你还可以这样理解:首先下图中的程序执行时,电脑是从上到下执行的。也就是说假如没有函数的声明那一句,当函数执行到函数调用这一句时,电脑不知道fun是什么东西,他不知道在下面有这个函数的具体实现。因此,需要声明下,告诉电脑,确实有这个东西存在,是函数,在下面有定义。

相似回答