c++ - 函数原型(prototype)混淆

标签 c++ function-prototypes

我已经学习 C++ 一段时间了,我唯一不能全神贯注的是函数原型(prototype)、函数调用和函数定义的东西。我读了各种各样的东西,但仍然不知道它的意思或作用。我只想能够理解和识别其中的每一个。根据我所读的内容,我很确定这些对编程很重要。我对函数原型(prototype)有一个粗略的了解,我相信它是一个返回某物值的语句。

最佳答案

让我看看能不能用一些类比来解释

功能原型(prototype) - 它就像一个产品广告 - 它说有一个产品 X,你可以从地点 Y 得到它。这对你作为消费者来说已经足够了,但没有说关于幕后发生的事情,让 X 到 Y 和你。

类似地,一个函数原型(prototype)是一个声明,它只是说有一个名为 X 的函数,接受参数 Y 并返回值 Z。对于任何调用者来说已经足够了,但不能对它做任何事情拥有。
例如 int DoSomething(int arg);

Function Call - 这是消费者前往 Y 地点索取产品 X。

这是真正调用函数代码的时候。但是为了能够调用你需要知道它存在的函数,所以你(至少)需要一个函数的原型(prototype)就在调用之上。
例如 int a = DoSomething(1);

功能定义 - 这是制造产品 X 并将其运输到位置 Y 的实际过程。

本质上这是函数本身的代码。
例如
int DoSomething(int arg){<br/> return arg+2;<br/> }

C 需要函数原型(prototype)(也称为前向声明),C++ 需要自由函数(不属于类的函数)

关于c++ - 函数原型(prototype)混淆,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13391731/

相关文章:

c - 我们需要从其头文件导入的方法的函数原型(prototype)的原因

c - 当我传入一个非零值作为参数时,为什么这个函数打印 0?

c - 用 C 为单链表 API 设计函数原型(prototype)

c++ - 在删除文件之前检查文件是否仍在被另一个进程使用(c、c++、linux)

c++ - 如何在 CMake 中使用对象库创建共享库

c++ - 反转字符数组

c - 带有二维数组参数的c中的函数调用和函数原型(prototype)

c++ - 简化类中的 `operatorX` 函数以按给定顺序比较相同类型的属性的正确方法或设计模式?

C++ - 实例化派生类并使用基类的构造函数

c - 函数指针声明 - __P 的作用是什么?