引用不是要初始化的么?
“Array& printInfo();”这样声明一下就算是引用了么?前面不是讲引用需要初始化的么?和这句“Array& Array::printInfo()”,这两句就实现了引用没看懂。
“Array& printInfo();”这样声明一下就算是引用了么?前面不是讲引用需要初始化的么?和这句“Array& Array::printInfo()”,这两句就实现了引用没看懂。
2017-02-21
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()才需要加&。我是这样理解的= =。
举报