提问人:user3443063 提问时间:5/12/2015 更新时间:5/12/2015 访问量:71
在 *.cpp 而不是 *.h [重复] 中定义函数时出现未定义引用错误
undefined-reference Error when defining a function in the *.cpp instead of in the *.h [duplicate]
问:
我有一个问题:我有 2 个类:mainwindow 和 ErgebnisAusFortran,如下所示:
mainwindow.h:
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
#include <QDebug>
#include <QString>
#include "ErgbnisAusFortran.h"
namespace Ui {
class MainWindow;
}
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
explicit MainWindow(QWidget *parent = 0);
~MainWindow();
public:
ErgbnisAusFortran Berechnung();
ErgbnisAusFortran Berechnung_1()
{
ErgbnisAusFortran ret;
qDebug() << " ich berechne Berechnung_1..." ;
return ret;
}
private slots:
void on_pb_Calculate_clicked();
private:
Ui::MainWindow *ui;
};
#endif // MAINWINDOW_H
主窗口.cpp:
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include "ErgbnisAusFortran.h"
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
}
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::on_pb_Calculate_clicked()
{
ErgbnisAusFortran Ergebnis_1;
ErgbnisAusFortran Ergebnis;
Ergebnis_1 = Berechnung_1();
Ergebnis = Berechnung();
}
ErgbnisAusFortran Berechnung()
{
ErgbnisAusFortran ret;
qDebug() << " ich berechne..." ;
return ret;
}
让我感到困惑的是以下几点:
我有 2 个方法 Berechnung() 和 Berechnung_1()。
Berechnung() 在 mainwindow.h 中声明,并在 mainwindow.cpp 中定义
Berechnung_1() 在 mainwindow.h 中声明,并在 mainwindow.h 中定义
当我运行程序时,我收到以下有关Berechnung()的错误:
对 MainWindow::Berechnung() 的未定义引用。Berechnung_1效果很好。这让我感到困惑,因为我在 mainwindow.cpp 中包含 mainwindow.h。
有谁知道出了什么问题吗?
谢谢
伊特利
答:
2赞
Mike Seymour
5/12/2015
#1
您忘记限定成员函数的名称:
ErgbnisAusFortran MainWindow::Berechnung()
^^^^^^^^^^^^
因此,这声明了一个新的非成员函数,使成员函数未定义。
上一个:对“Cat::Grizzly()”的未定义引用|[复制]
下一个:错误未定义引用
评论