簡體   English   中英

后綴前綴運算符重載錯誤C ++

[英]postfix prefix operator overload error c++

將運算符重載用於前綴和后綴增量時,我從編譯器收到錯誤:

“ Fajl Fajl :: operator ++(int)':成員函數已定義或聲明”

這是我的運算符++標頭:

Fajl& operator ++ (); // prefix
Fajl& operator -- (); // prefix
Fajl operator ++ (int); // postfix
Fajl operator ++ (int); // postfix

和我的實現:

Fajl& Fajl::operator ++ () // prefix
{
    ++(*poz);
    return *this;
}

Fajl& Fajl::operator -- () // prefix
{
    --(*poz);
    return *this;
}

Fajl Fajl::operator ++ (int dummy) // postfix
{
    Fajl temp(*this);
    ++(*this);
    return temp;
}

Fajl Fajl::operator -- (int dummy) // postfix
{
    Fajl temp(*this);
    --(*this);
    return temp;
}

“ Fajl”是類,“ poz”是我要增加的自變量。 我究竟做錯了什么?

Fajl operator ++ (int); // postfix
Fajl operator ++ (int); // postfix
              ^^
           should be --

很難確定,但這也許是指您已經重復了后綴增量的聲明:

Fajl operator ++ (int); // postfix
Fajl operator ++ (int); // postfix

大概其中之一應該是--而不是++ 這很可能會導致另一個問題:您顯然已經定義了一個operator-- ,但是未在類定義中聲明。 如果還沒有,編譯器幾乎肯定也會對此抱怨。

您有2個相同的Fajl運算符++(int)聲明; 將第二個更正給操作員-

暫無
暫無

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

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