这个问题在一个网站上被问到,我认为它必须有一个关于它的信息,因为当我们创建一个抽象类时,它是纯虚函数必须在派生类中实现的条件。基地是否有关于从他们派生的类的任何信息?
回答
基类没有关于它们的子类的任何信息。 它的子类有关于基类的信息。
取决于你对信息的意思。通过[CRTP](https://en.wikipedia.org/wiki/Curiously_recurring_template_pattern),基类可以访问派生类的所有公共成员。 – NathanOliver
@NathanOliver是的,我的意思是在Regular。对不起,没有指定。 –
@NathanOliver我不知道CRTP。很有意思! –
一般来说它取决于你的名字“信息” 如果你已经声明了一个基类中的虚函数 你可以说编译基类中生成一个跳转列表,当您从基类派生,并声明函数是什么它具有与虚拟基类函数相同的声明,编译器只需将派生类中的函数地址放置到基类中的该跳转列表中即可。 这当然是由派生类完成的。
如果您有继承链,最后一个实例化的类将放置其函数的地址。而当基类试图调用函数时,它只是使用跳转列表跳转到正确的函数。
- 1. C++,许多类从类派生,所有的派生类使用从别的东西派生的类,但他们的基地使用该化酶的基础
- 2. 基于派生类的关系
- 3. 是否有任何git命令来显示关于本地分支的信息?
- 4. 是否有可能从基类调用派生类函数
- 5. 基类和派生类的运行时类型信息
- 6. 接口用于从基类派生的其他属性
- 7. 如何从其他派生类访问其他派生类?
- 8. Android中的Google专有协议。有关他们的任何信息?
- 9. 如何基于特定的派生类
- 10. 任何类从一般基类派生的方法
- 11. 是否需要从所有派生类调用虚拟基类构造函数?即使他们不是最派生的?
- 12. 如果派生类包含其他方法和成员,static_cast是否可以从基类完成派生类?
- 13. 基地和派生类
- 14. 从基地创建一个派生类
- 15. 从派生类到基类
- 16. 从基类INITIALISE派生类
- 17. 是否可以使用“this”从派生对象的基类发出信号
- 18. 关于动态演基地的地址和派生对象
- 19. MongoDB是否存储关于文档属性类型的任何信息?
- 20. Casating从派生基地,ambiguouty
- 21. 是否有可能从C++中的基类方法返回派生类?
- 22. 使用在基类派生类,而派生类的基类
- 23. 是否可以从基类构造函数创建派生类?
- 24. C#是否可以从派生类中调用基类属性
- 25. 关于基类和派生类的构造函数调用
- 26. 关于派生类初始化中的基类
- 27. 关于此错误的任何信息
- 28. weak_ptr的基类,而shared_ptr是派生类?
- 29. 使用派生类'typedef的基地
- 30. 从基类修改派生类的值
您使用CRTP还是常规继承? – NathanOliver
父类不需要知道有关子类的任何信息,只要*编译器*知道所有这些就足够了。 –