gpt4 book ai didi

c++ - QT : cannot call member without object when I have a virtual function

转载 作者:太空宇宙 更新时间:2023-11-04 11:35:23 25 4
gpt4 key购买 nike

我正在调用 QT 中的另一个函数

来自 calendar.h 的虚函数:

virtual string whatDay(string){ return "";}

我在 calendarGregorian.h 中的函数:

string whatDay(string)

我的函数 on_whatDayButton_clicked() 来自 mainwindow.cpp

void MainWindow::on_whatDayButton_clicked()
{
QString whatDayString;
string getDay;
whatDayString = ui->lineGetDay->text();
string day = whatDayString.toUtf8().constData();
getDay = calendarGregorian::whatDay(day);

}

但是,当我编译时...它向我显示了这个错误:

错误:无法在没有对象的情况下调用成员函数 'virtual std::string calendarGregorian::whatDay(std::string)' getDay = calendarGregorian::whatDay(天); ^

拜托..我需要帮助

最佳答案

日历.h:

static string whatDay(string){ return "";}

calendarGregorian.h:

class CalendarGregorian: Calendar{
public:
static int superCalculationFactor = 276485;
int notSoGood;
static string whatDay(string)
{
//do the formatting using superCalculationFactor
//you can't use notSoGood!
return result;
}
}

这样你就不需要一个对象来调用函数。这里的问题是方法需要调用对象,而静态函数可以在没有对象的情况下调用。

但是如果你这样做,请不要忘记你只能访问静态类变量,而不能访问对象变量。

关于c++ - QT : cannot call member without object when I have a virtual function,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23213112/

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