假设我有一个抽象基类和类似的派生类,
class Base {
public:
virtual void doSomething() = 0;
}
class Derived: public Base {
private:
void doSomethingSpecificA();
void doSomethingSpecificB();
public:
void doSomething();
}
我用
初始化我的派生类Base *instance = new Derived;.
现在,假设我将doSomething
的衍生版本称为:
instance->doSomething();
和doSomething()
调用私有方法doSomethingSpecificA()
和doSomethingSpecificB()
。对specific
函数的这些内部调用是否需要与doSomething()
的原始调用所需的相同数量的vtable工作?或者它们只相当于标准方法调用?
答案 0 :(得分:0)
对特定功能的这些内部调用是否需要与原始调用doSomething()所需的相同数量的vtable工作?
没有。调用doSomethingSpecificA
和doSomethingSpecificB
时不涉及查找/动态调度,因为它们不是虚拟成员函数。
或者它们只相当于标准方法调用?
是