我遇到了一个问题:我有两个课程: 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
mainwindow.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;
}
令我困惑的是:
我有两种方法Berechnung()和Berechnung_1()。
Berechnung()在mainwindow.h中声明,在mainwindow.cpp中定义
Berechnung_1()在mainwindow.h中声明,在mainwindow.h中定义
当我运行该程序时,我得到关于Berechnung()的以下错误:
对MainWindow :: Berechnung()的未定义引用.Berechnung_1效果很好。这让我感到困惑,因为我在mainwindow.cpp中包含了mainwindow.h。
有人知道出了什么问题吗?
谢谢
itelly
答案 0 :(得分:2)
您忘了限定成员函数的名称:
ErgbnisAusFortran MainWindow::Berechnung()
^^^^^^^^^^^^
所以相反,它声明了一个新的非成员函数,使成员函数未定义。