在.cpp中调用的.h中定义的C ++方法无法识别

时间:2014-04-29 19:16:57

标签: qt

我正在尝试使用名为getName()的方法,该方法在下面的addPlayer.h文件中定义。 getname()方法将在名为Player的构造函数中使用。我得到的错误是:'getName'未在此范围内声明'。我该如何解决?

感谢您的帮助。

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)

1 个答案:

答案 0 :(得分:0)

您尚未正确确定makePlayer的定义 - 您需要加addPlayer::前缀:

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