2014-04-29 49 views
0

我正在嘗試使用在下面的addPlayer.h文件中定義的名爲getName()的方法。 getname()方法將用於名爲Player的構造函數中。我得到的錯誤是:'getName'未在此範圍內聲明'。我該如何解決它?在.cpp中調用的.h中定義的C++方法無法識別

感謝您的幫助。

的addPlayer.h文件:

#include "../Source/Player.h" 

class addPlayer : public QDialog 
{ 
Q_OBJECT 

public: 
    addPlayer(QWidget *parent = 0); 
    ~addPlayer(); 

    tp::Player* makePlayer(); 
    void addPlayer(); 

    QString getName() const; 

inline QString addPlayer::getName() const 
{ 
    return (ui.name_lineEdit->text()); 
} 

的addPlayer.cpp文件:

#include "addPlayer.h" 
#include <QMessageBox> 

using namespace tp; 

addPlayer::addPlayer(QWidget *parent) 
    : QDialog(parent) 
{ 
    ui.setupUi(this); 
    QObject::connect(ui.ok_pushButton, SIGNAL(clicked()), this, 
        SLOT(validatePlayer())); 
    QObject::connect(ui.dateNaissance_pushButton, SIGNAL(clicked()), this, 
         SLOT(getDate())); 
} 

addPlayer::~addPlayer() 
{ 

} 

Player* makePlayer() 
{ 
    return new Player(getName().toStdString()); 
} 

構造如下:

class Player: public HumanBeing { 
public: 

    //Constructor 
    Player(const std::string& p_name); 

Player::Player(const std::string& p_name): m_name(p_name) 

回答

0

你沒有正確的作用域定義makePlayer - 您需要前綴addPlayer::

Player* addPlayer::makePlayer() 
{ 
    return new Player(getName().toStdString()); 
} 
+0

好吧,就是這樣。謝謝RA。 –

相關問題