簡體   English   中英

帶有引用和指針的指針的重載返回

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM