类中函数调用报错,求解答

下面这个代码为什么a->func1()有问题呢?是因为func1是个静态函数吗?

img

你说的很对。
如果你还存在疑问,希望你把静态成员函数仔细阅读下。
静态成员函数不属于对象,调用的时候使用 类名:A::fun1()

下面这个代码为什么a->func1()有问题呢?
你指什么问题?编译报错吗?函数实现写了没?类成员默认是私有的,所以你A类的变量和函数都是私有属性,在类外是不可以访问的

供参考:

#include <stdio.h>
class A {
private:
    int a;
public:
    A() {};
    static void func1();
    virtual void func2();
    void func3();
};
void A::func1()
{
    printf("func1()\n");
    return;
}
void A::func2()
{
    return;
}
void A::func3()
{
    return;
}
int main()
{
    A* a = new A();
    a->func1();
    printf("%d", sizeof(A));
    return 0;
}