欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Error:cannot call member function without object

程序员文章站 2022-05-30 21:34:59
...
class Base {
public:
    void virtual f() = 0;//纯虚函数
    void virtuL g() { cout << "Base::g()" << endl; 
};

int main() {
    Base::g();
}

运行以上函数时(只是想测试一下抽象类的函数能否被调用),出现了题目所示的错误,查阅相关资料,发现是因为
没有把成员函数声明为static函数,否则需要通过对象来调用函数,通常成员函数在调用时* this指针*时被当作参数传进。,因此一个const对象不能调用非const函数(此时传入的是const this指针),但是非const对象可以调用const对象,因为会发生隐式转换。