[英]Overload return of a pointer with reference and pointer
我得到以下代碼:
class myarray
{
float* rawdata;
float* GetRawData () const noexcept { return rawdata; };
float& GetRawData () const noexcept { return rawdata; };
const float& GetRawData () const noexcept { return rawdata; };
}
我得到編譯器錯誤,說不可能重載前兩個成員函數。 C++ 是否不可能進行區分,因為我們在引用中調用 function 時會有不同的語法
C++是不是不能區分
它不是。 重載可以使用不同的參數列表,在成員函數的情況下,使用 ref/const 限定符。 但不是通過返回值。 您的重載具有相同的參數列表和 ref/const 限定符,因此它們不能相互重載。
因為我們在引用中調用 function 時會有不同的語法
不,我們不會。 在這兩種情況下調用是相同的:
this->GetRawData()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.