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