1、
#include "mainwindow.h"
#include <QApplication>
#include <QtDebug>
class Test
{
public:
void test1(){qDebug() << "test1";}
void test2()const{qDebug() << "test2";}
static void test3(){ qDebug() << "test3";}
};
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
Test::test1();//错误
Test::test3();//正确
return a.exec();
}
Test::test1(); 此句报错: cannot call member function ’ ’ without object
需要定义一个对象才能调用成员函数。
如果想直接引用,可以声明函数为 static 静态的
#include "mainwindow.h"
#include <QApplication>
#include <QtDebug>
class Test
{
public:
void test1(){qDebug() << "test1";}
void test2()const{qDebug() << "test2";}
static void test3(){ qDebug() << "test3";}
};
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
Test temp;
temp.test1();//正确
return a.exec();
}
2、
#include "mainwindow.h"
#include <QApplication>
#include <QtDebug>
class Test
{
public:
void test1(){qDebug() << "test1";}
void test2()const{qDebug() << "test2";}
static void test3(){ qDebug() << "test3";}
};
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
const Test temp;
temp.test1();//错误
temp.test2();//正确
temp.test3();//正确
return a.exec();
}
const 对象只能调用 const 函数或 static 函数