我在QT编程方面完全是新手,所以我有点问题。 为什么我会收到此错误?
undefined reference to `Messenger::newParticipant(QString)'
的main.cpp
#include <QCoreApplication>
#include <QTextStream>
#include "messenger.h"
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
Messenger* messenger = new Messenger();
messenger->newParticipant("AAAA");
QTextStream qout(stdout);
qout << "asd\n";
qout.flush();
return a.exec();
}
messenger.h
#ifndef MESSENGER_H
#define MESSENGER_H
#include "network/client.h"
#include <iostream>
#include <QTextStream>
class Messenger
{
public:
Messenger();
void newParticipant(const QString &nick);
private slots:
void sendMessage(const QString &message);
void participantLeft(const QString &nick);
};
#endif // MESSENGER_H
messenger.cpp
#include "messenger.h"
Messenger::Messenger()
{
QTextStream qout(stdout);
qout << "a. Constructor...\n";
qout.flush();
}
void newParticipant(const QString &nick)
{
if (nick.isEmpty())
return;
QTextStream qout(stdout);
qout << nick;
qout.flush();
}
答案 0 :(得分:1)
您忘记在newParticipant
的定义中指定类名。
尝试将其更改为messenger.cpp中的void Messenger::newParticipant(const QString &nick)
。
答案 1 :(得分:1)
那是因为你忘了在cpp文件中的Messenger::
定义之前写newParticipant
。