簡體   English   中英

具有常數 class 成員的賦值運算符

[英]Assignment operator with a constant class member

我有一個名為 RSArray 的 class ,其中包含一個常量數據成員。 但是對於這個 class 我想創建一個自定義賦值運算符。 請參閱下面的代碼: -

class RSArray
{
private:
    int *data;
    const int max_size;
public:
    RSArray(size) : max_size(size)
    {
        data = new int[max_size];
    }
    RSArray &operator=(const RSArray &src)
    {
         data = new int[src.max_size];
         max_size = src.max_size
    }

}

int main()
{
    RSArray one(10), two(15);
    one = two;
}

上面的代碼在調用賦值運算符時給了我錯誤,因為我們無法更改 const 數據成員的值。

有沒有其他方法可以擺脫這個錯誤?

有沒有其他方法可以擺脫這個錯誤?

是的,從max_size中刪除const 根據定義賦值會改變目標。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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