在这种情况下会发生什么?

jma*_*erx 1 c++

假设我有基类A.它有方法

void foo(A* a);
Run Code Online (Sandbox Code Playgroud)

它也有方法

void foo(B* b);
Run Code Online (Sandbox Code Playgroud)

B继承自A.

说我现在有一个B实例,但它是一个A*ex:

A* a = new B();
Run Code Online (Sandbox Code Playgroud)

如果我打电话

 someA.foo(a);
Run Code Online (Sandbox Code Playgroud)

这会调用方法的A*实现还是B*实现?

我正在为方法提供A*,但实际上该对象是B().

谢谢

Xeo*_*Xeo 6

根据传递参数的静态类型选择函数重载.在静态类型a就是A*,只有它的动态类型B.去搞清楚.