我正在学习C++而我正在进入虚拟功能.
根据我的阅读(在书中和在线),虚函数是基类中的函数,您可以在派生类中重写它们.
但是在本书前面,当我学习基本继承时,我能够在不使用的情况下覆盖派生类中的基本函数virtual.
那我在这里错过了什么?我知道虚拟功能还有更多功能,而且它似乎很重要,所以我想清楚它究竟是什么.我在网上找不到直接答案.
我只使用和学习了基类的虚方法,而不知道所使用的虚拟属性
class A
{
public virtual ICollection<B> prop{get;set;}
}
Run Code Online (Sandbox Code Playgroud)
有人能告诉我这是什么意思吗?
foreach(PlayerBase p in Members)
{
p.Render();
}
Run Code Online (Sandbox Code Playgroud)
该Members列表包含类型FieldPlayer或的成员GoalKeeper.FieldPlayer并GoalKeeper继承自PlayerBase.当我打电话时p.Render(),我需要Render拨打适当的电话FieldPlayer或GoalKeeper.我怎么做?
谢谢
可能重复:
什么是虚拟方法?
在C#中,即使您没有将基类方法声明为virtual,编译器也会在方法签名匹配时调用最新的派生类方法.如果没有virtual关键字,我们只会收到警告消息,说明将调用派生方法(现在可以使用new关键字删除).
在没有此关键字的情况下将方法声明为虚拟的用法是什么 - 在签名匹配时也会调用最后派生类中的方法.
我在这里不明白.代码可读性目的是"虚拟"吗?工匠