簡體   English   中英

運算符=在C ++中具有不同參數的重載?

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

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