一、虚成员函数的调用方式
但这种情况是明确不使用多态。虚函数和普通成员函数一样,在内存中也有一个固定的内存地址。也是在编译的时候确定好的。 二、静态成员函数调用方式 在类中添加如下静态函数: 下面是调用方式: 静态成员函数是没有this指针的。上面这三种写法转为汇编是一样的。
看如下使用0调用函数:
class MyClass
{
public:
int a{10};
int b{ 1 };
static void s_gogo()
{
cout << "这是静态的gogo\n";
}
void gogo2(int ax)
{
cout << "这是普通的gogo2\n";
printf("%p", this);
a = ax;
}
};
void main()
{
((MyClass *)0)->s_gogo();
((MyClass *)0)->gogo2(11);
int a = 10;
system("pause");
}
静态成员函数总结: 1.静态成员函数没有this指针 2.无法直接存取类中普通的非静态变量 3.静态成员函数不能在屁股后面使用const,也不能设置为virtual 4.可以使用类对象调用,但不非要用类对象调用,也可以使用类名调用 5.静态成员函数等同于非成员函数,有的需要提供回调函数的这种场合,就可以将成员函数作为回调函数。
|