c – 原型声明和前向声明之间的区别?
发布时间:2020-12-16 10:06:33 所属栏目:百科 来源:网络整理
导读:所以我有这个代码: 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).它在非定义函数声明中建立函数参数名称的范围,它是最接近的封闭函数声明符. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |