Qt 5 C ++对Class :: function(QString,Qstring,...)的未定义引用

时间:2015-04-14 18:39:00

标签: c++ qt

我知道此问题之前已在此论坛中得到解答,但我需要更具体的帮助。

以下是代码:

sessionwindow.cpp

#include "sessionwindow.h"
#include "ui_sessionwindow.h"
#include "session.h"
#include "utils.h"

#include <QStringList>

SessionWindow::SessionWindow(QWidget *parent) : QDialog(parent), ui(new Ui::SessionWindow)
{
    ui->setupUi(this);
    this->setFixedSize(this->size());
}

SessionWindow::~SessionWindow()
{
    delete ui;
}

void SessionWindow::on_cancelBtn_clicked()
{
    close();
}

void SessionWindow::on_createBtn_clicked()
{
    QString min = (ui->isMin) ? "min" : "nomin";
    QString sp = (ui->spHidd) ? "nosp" : "sp";
    QString name = ui->sessionName->text();
    QString user = ui->skUser->text();
    QString pass = ui->skPass->text();
    Utils u;

    u.createSession(name, user, pass, min, sp);
}

utils.h(声明函数原型的地方)

#ifndef UTILS_H
#define UTILS_H

#include <QString>
#include <QStringList>


class Utils
{
public:
    Utils();
    ~Utils();
    void startSkype(QString, QString, QStringList);
    void createSession(QString , QString, QString, QString, QString);
};

#endif // UTILS_H

utils.cpp(函数所在的位置)

#include "utils.h"
#include "session.h"

#include <QString>
#include <QStringList>
#include <QVector>
#include <QDebug>

QVector<Session> sessions;

Utils::Utils()
{

}

Utils::~Utils()
{

}

void Utils::startSkype(QString user, QString pass, QStringList options)
{

}

void createSession(QString name, QString user, QString pass, QString isMin, QString spHid)
{
    sessions.append(Session(name, user, pass, isMin, spHid));
}

问题是我无法编译它,它只是抛出一个错误:未定义的引用`Utils :: createSession(QString,QString,QString,QString,QString)'

很抱歉,如果我解释不好并感谢您的帮助! :d

1 个答案:

答案 0 :(得分:1)

您忘记将Utils::放在方法定义的前面:

void createSession(QString name, QString user, QString pass, QString isMin, QString spHid)
{
    sessions.append(Session(name, user, pass, isMin, spHid));
}

应该是

void Utils::createSession(QString name, QString user, QString pass, QString isMin, QString spHid)
{
    sessions.append(Session(name, user, pass, isMin, spHid));
}