要定义成员函数,我们可以使用内联函数说明符和staticor virtual(但不是两者)说明符.为什么不兼得?
回答:
virtual关键字表示运行时评估,这意味着要this在运行时基于运行时评估要调用的函数,这是可能的,因为隐式this指针会隐式传递给成员函数,如果标记了函数,static则this指针不会传入会员功能.这是因为static指示该函数未与实例关联,但它属于该类.
从上面virtualism不能在没有的情况下工作this并且static指定为no this.因此static,virtual不能同时应用于某个功能.
阿非静态成员函数可以具有const,volatile或两者函数限定符.怎么会有两个?如果它宣布const那么它怎么可能volatile?
回答:
一个const限定词表示该函数将不会修改任何类成员.这就是类成员immutable在函数内部.但是,一个const函数仍然可以修改mutable在类定义中声明的类成员.
一个volatile限定词指示不适用(禁用)任何优化的用于实施例的编译器:通过缓存在寄存器中的值,而不是从内存每次阅读.
鉴于上述情况,功能可以const,但volatile,它告诉这个功能不会修改任何一成不变的类成员的编译器,但它可以修改mutable类成员和编译器不应适用自己的优化(如基于寄存器高速缓存),同时处理那特定的功能.