加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c – 在类的定义中定义成员函数

发布时间:2020-12-16 10:24:22 所属栏目:百科 来源:网络整理
导读:我一直想知道为什么我读过的大多数代码和教程总是在类中声明成员函数,然后像这样定义它. class A{ A doSomething(); }; A A::doSomething(){ //doing something } 而不是这样做 class A{ A doSomething(){ //doing something } }; 无论如何,我正在修改我的教
我一直想知道为什么我读过的大多数代码和教程总是在类中声明成员函数,然后像这样定义它.

class A{

             A doSomething();

       };

       A A::doSomething(){

            //doing something 

       }

而不是这样做

class A{

             A doSomething(){

                 //doing something 

             } 

       };

无论如何,我正在修改我的教授的课程,我发现了这个:

“Toute fonctionmembredéfiniedanssa classe(danslaséclarationdela classe)estconsiéréeparle compilateur comme une fonction inline.Lemotcléinlinen’estplusutilisé.”

转化为;

“在其类中定义的所有成员函数(在类’声明中)被编译器视为内联函数.不再使用关键字’inline’”

我理解的是,邻接内联函数就像宏一样工作.编译器将整个代码块复制到调用该函数的每个实例中.

我的问题是;我教授的课程中的陈述是否正确,如果是,那背后的原因是什么?

解决方法

你教授的陈述是正确的,你对内联意味着什么的理解不正确.内联函数允许跨翻译单元的多个定义,并不一定意味着调用实际内联(即像宏一样扩展).

如果在没有内联或静态的标题中定义自由函数并在多个翻译单元中包含该标题,则将打破一个定义规则.

成员函数是相似的,除非标记为内联(它们隐含在类定义中).

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读