[英]Operator= Overload with different parameter in C++?
當我創建Example(類)的對象時,我想使用equal運算符為其分配一個int值,以了解運算符重載的工作方式。
但是我無法使用以下代碼進行編譯:
類:
Example& Example::operator=(int number)
{
this->number = number;
return *this;
}
主要:
Example x1 = 10;
盡管看起來不是一個分配,但它是一個初始化。 它調用構造函數,而不是賦值運算符。
嘗試這個:
Example x1; // initialize
x1 = 10; // assign
在您的示例中,它正在尋找一個將int
作為其參數的構造函數。
線
Example x1 = 10;
與...相同
Example x1(10);
要么
Example x1 = Example(10);
它調用構造函數,而不是賦值運算符。 顯然,它需要一個類似以下的構造函數:
Example(const int& n) : number(n) {}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.