我自从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);
}
但是,当我正在编译时......它会向我显示此错误:
错误:无法调用成员函数'虚拟std :: string calendarGregorian :: whatDay(std :: string)'没有对象 getDay = calendarGregorian :: whatDay(day); ^
请......我需要帮助
答案 0 :(得分:1)
calendar.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;
}
}
你不需要一个对象来调用该函数。这里的问题是方法需要调用对象,而静态函数可以在没有对象的情况下调用。
但如果你这样做,不要忘记你只能访问静态类变量,而不能访问对象变量。