inline my_num&
my_num::fun(my_num* ths, const my_num& num){
....
return *ths;
}
可以看到,接收到my_num类型的指针 ths,在最后返回的是 *ths(这里表示的是一个对象,ths是一个指针),那么,return的是一个对象,一个value,而函数要求的返回值的return by reference的形式,这样编写的函数,一眼看下去,会觉得编译并会不会通过。但实际上,这种写法是完全没有问题的。
在侯捷老师的课上有提到过,传递者无需知道接收者是以by reference形式接收的。意思就是,在函数内部return的是value,不用理会函数式以by value形式还是以by reference形式接收,当然以reference形式更快。