我正在尝试使用以下代码重载++和 - 运算符:
Deck::Deck& operator--();
{
pop();
Deck *this;
}
Deck::Deck operator--(int q);
{
pop();
Deck *this;
}
Deck::Deck& operator++();
{
push();
return *this;
}
Deck::Deck operator++(int q);
{
push();
return *this;
}
这会导致错误,说Deck :: Deck将构造函数命名为不是类型。我的问题是,如果我实现这个代码错了。这是在deck.cpp文件中,而在deck.h中,原型与deck类本身一起。任何帮助将不胜感激。
答案 0 :(得分:0)
编译器Deck::Deck
的错误中提到的是类Deck
的构造函数,因此不能用作返回类型,相反,如果要返回类型的对象Deck
然后将返回类型更改为Deck
。
此外,如果函数是类Deck
的成员函数,那么定义应该类似于在类外定义:
Deck Deck::operator--() { // or Deck Deck::operator--(int)
^^^^^^
// body
}