首页 > 解决方案 > 重新定义错误

问题描述

我正在开发一个模拟 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。这可能是什么原因造成的?

标签: c++c++11

解决方案


您已经getName()在头文件和 .cpp 文件中包含了整个构造函数和函数。它们应该只存在于其中一个中。


推荐阅读