错误:Deck::D eck 命名构造函数而不是类型
Error: Deck::Deck names the constructor not the type
我正在尝试使用以下代码重载++和-运算符:
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::D eck 命名构造函数而不是类型。我的问题是我是否错误地实现了这段代码。这是在deck.cpp文件中,而在deck.h中是原型与deck类本身一起的位置。任何帮助将不胜感激。
正如编译器的错误中所述,Deck::Deck
是类Deck
的构造函数,因此不能用作返回类型,相反,如果要返回类型为Deck
的对象,则将返回类型更改为Deck
。
此外,如果函数是类Deck
的成员函数,那么定义应该是这样的,用于在类外部定义:
Deck Deck::operator--() { // or Deck Deck::operator--(int)
^^^^^^
// body
}
相关文章:
- 如果C++类在类方法中具有动态分配,但没有构造函数/析构函数或任何非静态成员,那么它仍然是POD类型吗
- 构造函数正在调用一个使用当前类类型的函数
- 如何修复函数样式强制转换或类型构造的预期"("?
- 具有默认模板类型的默认构造函数的类型推导
- C++LinkedList问题.数据类型之间存在冲突?没有匹配的构造函数
- 为什么类中的ostringstream类型的成员会导致";调用隐含删除复制构造函数";错误
- 在 c++ 中的模板实例化中使用带有构造函数的类作为类型参数
- 不命名构造函数和析构函数上的类型错误
- 具有自定义构造函数 (C++) 的类型的动态数组分配
- C++方法是否可以根据传递给构造函数的参数具有不同的返回类型?
- 创建类类型的动态分配数组,其中类不得具有默认构造函数
- 初始化自定义类型构造函数的数组
- OpenGL着色器错误C1068:类型构造函数中的数据过多
- Lambda 闭包类型构造函数
- 仅当基础类型具有模板类型构造函数时,才实现这些构造函数
- 模板类的构造函数在使用 new 关键字时调用类型构造函数
- 如何强制函数参数为相同类型,并且不允许使用类型构造函数与给定类型匹配
- 模板类型构造函数参数
- 它们是c++中的类型构造函数
- 解析C++类型构造函数