2016-04-25 27 views

回答

1

基类没有关于它们的子类的任何信息。 它的子类有关于基类的信息。

+0

取决于你对信息的意思。通过[CRTP](https://en.wikipedia.org/wiki/Curiously_recurring_template_pattern),基类可以访问派生类的所有公共成员。 – NathanOliver

+0

@NathanOliver是的,我的意思是在Regular。对不起,没有指定。 –

+0

@NathanOliver我不知道CRTP。很有意思! –

0

一般来说它取决于你的名字“信息” 如果你已经声明了一个基类中的虚函数 你可以说编译基类中生成一个跳转列表,当您从基类派生,并声明函数是什么它具有与虚拟基类函数相同的声明,编译器只需将派生类中的函数地址放置到基类中的该跳转列表中即可。 这当然是由派生类完成的。

如果您有继承链,最后一个实例化的类将放置其函数的地址。而当基类试图调用函数时,它只是使用跳转列表跳转到正确的函数。

相关问题