首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >显示QString

显示QString
EN

Stack Overflow用户
提问于 2014-02-09 22:31:25
回答 2查看 684关注 0票数 1

我在QT编程方面完全是新手,所以我有个小问题。我为什么会犯这个错误?

代码语言:javascript
复制
undefined reference to `Messenger::newParticipant(QString)'

main.cpp

代码语言:javascript
复制
#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

代码语言:javascript
复制
#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

代码语言:javascript
复制
#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();
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-02-09 22:34:40

您忘了在newParticipant的定义中指定类名。

尝试将其更改为void Messenger::newParticipant(const QString &nick) in messenger.cpp。

票数 1
EN

Stack Overflow用户

发布于 2014-02-09 22:36:03

这是因为您忘记在cpp文件中在Messenger::定义之前编写newParticipant

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21665967

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档