C++ 错误:Deck::Deck将构造函数命名为非类型
我试图用以下代码重载++和--运算符:C++ 错误:Deck::Deck将构造函数命名为非类型,c++,overloading,operator-keyword,C++,Overloading,Operator Keyword,我试图用以下代码重载++和--运算符: 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);
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类本身一起存在。任何帮助都将不胜感激。正如编译器
Deck::Deck
在错误中提到的那样,Deck是类Deck
的构造函数,因此不能用作返回类型,相反,如果要返回Deck
类型的对象,请将返回类型更改为Deck
此外,如果函数是类Deck
的成员函数,则在类外定义时,定义应如下所示:
Deck Deck::operator--() { // or Deck Deck::operator--(int)
^^^^^^
// body
}
将返回类型中的
Deck::Deck
更改为Deck
当我尝试得到此错误时:“Deck操作符--(int)必须有一个类或枚举类型的参数”如果我在任何行中仅用Deck替换Deck::Deck,那么我会得到每个行的错误这些成员函数是吗??