gpt4 book ai didi

c++ - Qt C++无法调用没有对象的成员函数 ' '

转载 作者:塔克拉玛干 更新时间:2023-11-03 08:27:47 24 4
gpt4 key购买 nike

我一直收到这个错误:

cannot call member function 'QString Load::loadRoundsPlayed()'without object

现在我对 c++ 和 qt 还很陌生,所以我不确定这意味着什么。我正在尝试调用另一个类的函数来设置某些 lcdNumbers 上的数字。这是包含函数的 Load.cpp:

#include "load.h"
#include <QtCore>
#include <QFile>
#include <QDebug>

Load::Load() //here and down
{}

QString Load::loadRoundsPlayed()
{
QFile roundsFile(":/StartupFiles/average_rounds.dat");

if(!roundsFile.open(QFile::ReadOnly | QFile::Text))
{
qDebug("Could not open average_rounds for reading");
}

Load::roundsPlayed = roundsFile.readAll();
roundsFile.close();
return Load::roundsPlayed;
}

这是 Load.h:

    #ifndef LOAD_H
#define LOAD_H

#include <QtCore>

class Load
{
private:
QString roundsPlayed; //and here
public:
Load();
QString loadRoundsPlayed(); //and here
};

#endif // LOAD_H

最后是调用函数的地方:

    #include "mainwindow.h"
#include "ui_mainwindow.h"
#include "load.h"
#include <QLCDNumber>

MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
MainWindow::startupLoad();
}

MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::startupLoad()
{
ui->roundPlayer_lcdNumber->display(Load::loadRoundsPlayed()); //right here
}

当我运行它时,我得到了那个错误。我不确定这意味着什么,所以如果有人可以提供帮助,我将不胜感激。谢谢。

最佳答案

错误描述的很清楚

不能在没有对象的情况下调用成员函数'QString Load::loadRoundsPlayed()'

如果不创建类的实例,就不能调用非静态的成员函数。


查看您的代码,您可能需要这样做:

Load load;
ui->roundPlayer_lcdNumber->display(load.loadRoundsPlayed()); //right here

还有两个选择:

  • loadRoundsPlayedroundsPlayed 设为静态,如果您不希望它们与具体实例关联,或者
  • loadRoundsPlayed 设为静态并通过拷贝返回 QString,它将在函数内部本地创建。像

:

QString Load::loadRoundsPlayed()
{
QFile roundsFile(":/StartupFiles/average_rounds.dat");

if(!roundsFile.open(QFile::ReadOnly | QFile::Text))
{
qDebug("Could not open average_rounds for reading");
}

QString lRoundsPlayed = roundsFile.readAll();
roundsFile.close();
return lRoundsPlayed;
}

关于c++ - Qt C++无法调用没有对象的成员函数 ' ',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11746729/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com