エラー情報について:cannot call member function''without object

11563 ワード

1、
#include "mainwindow.h"
#include 
#include 
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 
#include 
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 
#include 
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関数のみを呼び出すことができます