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