下面这个代码为什么a->func1()有问题呢?是因为func1是个静态函数吗?
你说的很对。
如果你还存在疑问,希望你把静态成员函数仔细阅读下。
静态成员函数不属于对象,调用的时候使用 类名: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;
}