r***c 发帖数: 95 | 1 大家都是大牛,菜鸟来问一个弱问题。
Smart pointer implementation里, dereferencing operator 和 member selection
operators是这样定义的。
T& operator* () const // dereferencing operator
{
return *(m_pRawPointer);
}
T* operator->() const // member selection operator
{
return m_pRowPointer;
}
想知道,因为什么,前者returned by reference, 后者 returned by pointer呢?能
不能前者return-by-pointer, 后者return-by-reference呢? | s****a 发帖数: 794 | | r***c 发帖数: 95 | 3 谢谢回复!
引用使用时无需解引用(*),指针需要解引用。
第一个返回的是reference;否则还需要继续dereference。
第二个返回的是指针,因此可以直接接->, which is equivalent to (*ptr).。
是这个意思么? | s****a 发帖数: 794 | 4 反正我觉得是这个意思 换一换的话就没法用了。。。
【在 r***c 的大作中提到】 : 谢谢回复! : 引用使用时无需解引用(*),指针需要解引用。 : 第一个返回的是reference;否则还需要继续dereference。 : 第二个返回的是指针,因此可以直接接->, which is equivalent to (*ptr).。 : 是这个意思么?
|
|