c++ - 重新定义错误
问题描述
我正在开发一个模拟 GoFish 游戏的程序。我有一个奇怪的错误,让我很难取得任何进展。构建“错误:'播放器'的重新定义”时出现以下错误。我查看了有关该错误的各种网站,但似乎所有代码都包含标头中的 cpp 和 cpp 中的标头。但是,我的没有。
这是 .cpp 文件:
#include "player.h"
Player::Player(){
myName = "";
}
Player::Player(string name) {
myName = name;
}
string Player::getName() const {
return myName;
}
我已经排除了不出错的方法。
此外,这里是 .h 文件:
#ifndef UNTITLED3_PLAYER_H
#define UNTITLED3_PLAYER_H
#include <iostream>
#include <string>
#include <vector>
#include "card.h"
using namespace std;
class Player
{
public:
Player();
Player(string name) {
myName = name;
}
string getName() const {
return myName;
}
void addCard(Card c); //adds a card to the hand
void bookCards(Card c1, Card c2);
bool checkHandForBook(Card &c1, Card &c2);
bool rankInHand(Card c) const;
Card chooseCardFromHand() const;
bool cardInHand(Card c) const;
Card removeCardFromHand(Card c);
string showHand() const;
string showBooks() const;
int getHandSize() const;
int getBookSize() const;
private:
vector <Card> myHand;
vector <Card> myBook;
string myName;
};
#endif
唯一出现重新定义错误的两个函数是构造函数和 getName。这可能是什么原因造成的?
解决方案
您已经getName()
在头文件和 .cpp 文件中包含了整个构造函数和函数。它们应该只存在于其中一个中。
推荐阅读
- ios - Swift - 领域由于某种原因在主线程上
- image-processing - 在训练更快的 R-CNN 模型时 - 'epoch_length' 是什么意思?
- jquery - 在 jQuery 中访问控制器会话值
- mysql - mysql GROUP_CONCAT + seaparator + order by?
- node.js - 如何设置创建新文档并将新文档存储在另一个文档的数组字段中的路由
- c++ - c ++使用CRTP为variaidic模板中的每种类型创建纯虚拟重载
- c# - 有没有办法从 DataTable 填充 DataGrid 中的 DataGridComboBoxColumn?
- jquery - 如何在 JQuery 中解决此旋转图像问题?
- c# - 使用 MQL 的 WIC (exif) 元数据查询语法
- ios - iOS上的Pjsip视频解码问题