为了账号安全,请及时绑定邮箱和手机立即绑定

引用不是要初始化的么?

“Array& printInfo();”这样声明一下就算是引用了么?前面不是讲引用需要初始化的么?和这句“Array& Array::printInfo()”,这两句就实现了引用没看懂。

正在回答

2 回答

Array& printInfo(); 是声明这个函数, Array& Array::printInfor()这里是定义实现这个函数。

而Array& 是说明该函数执行后的返回类型, 因为前面调用的时候是 xxx().xxx().xx()这样连续调用的嘛,所以

是需要&(*x).xx()这样来调用方法,如果你直接写 Array printInfo() 这样的话 返回出去就只是一个指针了,*x.xxx()这样调用函数就会报错,所以要加个&引用符号吧,如果你直接写xx()->xxx()->xxx()这样应该就没问题吧,本质就是返回把调用者return出去来继续调用函数。 就和后面是Array* 来定义返回类型只return 一个this 然后采用 xxx()->xxx()来继续调用函数一样。

因为作者的写法是xx().xx()才需要加&。我是这样理解的= =。

1 回复 有任何疑惑可以回复我~

为什么你不把代码看完...

Array& Array::printInfo() {

    ...

    return *this;//return 的时候 给引用初始化

}

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
C++远征之封装篇(下)
  • 参与学习       70919    人
  • 解答问题       514    个

封装--面向对象三大特征之一,通过案例让C++所学知识融会贯通

进入课程

引用不是要初始化的么?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信