1

我有两个类。一个类继承自另一个类。我也将多态性与虚函数一起使用。我可以看到虚函数表吗?我想了解虚函数的机制。

public class A
{
 public virtual void foo()
 {
 }
}

public class B:A
{
  public override void foo()
  {
  }
}
...
A a=new B();
a.SomeMethod();//show table of virtual function
4

1 回答 1

2

不可能真正看到虚拟表,因为 CLR 多态机制不是基于为每个实例分配的指针,该指针指向您可能熟悉的 C++ 语言中的虚拟表。

.NET 为每个实例保留一个指向类型对象的指针,该类型对象分别指向管理要调用的实际实现的方法表。

在这里查看更多详细信息。

于 2013-09-12T19:21:47.913 回答