我在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_Hmessenger.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();
}发布于 2014-02-09 22:34:40
您忘了在newParticipant的定义中指定类名。
尝试将其更改为void Messenger::newParticipant(const QString &nick) in messenger.cpp。
发布于 2014-02-09 22:36:03
这是因为您忘记在cpp文件中在Messenger::定义之前编写newParticipant。
https://stackoverflow.com/questions/21665967
复制相似问题