c – 原型声明和前向声明之间的区别?

c – 原型声明和前向声明之间的区别?,第1张

概述所以我有这个代码: class xx{ int getnum(); //Is this a forward declaration or a prototype declaration and why?};int xx::getnum(){ return 1+3;} 所以这个问题已经在代码中得到了评论,但是: 是int getnum();前瞻性声明原型声​​明,为什么 所以我有这个代码:

class xx{    int getnum(); //Is this a forward declaration or a prototype declaration and why?};int xx::getnum(){    return 1+3;}

所以这个问题已经在代码中得到了评论,但是:

是int getnum();前瞻性声明或原型声​​明,为什么?

解决方法 “前向声明”和“原型声明”这两个术语都没有在C标准中定义,因此非常严格地说,它既不是.这只是一个宣言.如果您想要更具体,可以将其称为非定义声明,或“不是定义的声明”.

当在标准中使用“前向声明”一词时,它们用于引用声明但未定义它们声明的事物(函数或类)的声明.根据这种用法,int getnum()因此是一个前向声明.

函数的“原型声明”在标准(1)中使用得更少,并且主要是在谈论与[C]的兼容性时.但是,在使用时,它指的是与该函数的前向声明完全相同的概念.顺便说一下,你也可以调用int getnum();原型声明.

总而言之,术语“前向声明”和“原型声明”没有正式的定义,但从它们通常使用和理解的方式来看,int getnum();可以描述为.

(1)然而,标准中定义了类似术语“函数原型范围”(C 17 N4659 [basic.scope.proto] 6.3.4 / 1).它在非定义函数声明中建立函数参数名称的范围,它是最接近的封闭函数声明符.

总结

以上是内存溢出为你收集整理的c – 原型声明和前向声明之间的区别?全部内容,希望文章能够帮你解决c – 原型声明和前向声明之间的区别?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1217725.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-05
下一篇 2022-06-05

发表评论

登录后才能评论

评论列表(0条)

保存