到目前为止,我已经访问了很多链接。
我似乎了解如何使用关键字virtual
。
但是我仍然不了解它对函数的作用。(不用讲课了!)
我猜想它可能会做什么。.
请允许我通过以下代码片段进行自我解释
课程
class stars
{
public :
void describe { cout << "Stars are bright objects\n"}
};
class sun : public stars
{
public:
void describe { cout << "Sun is visibly the most brightest star\n";}
};
主要功能
void main()
{
sun *ptr = new sun;
stars *spt = ptr;
ptr -> describe(); //Output line1: "Sun is visibly the most brightest star"
spt->describe(); //Output line2: "Stars are bright objects"
((sun*)stp) -> describe() //Output line3: "Sun is visibly the most brightest star"
}
现在,我是否在virtual
中的void describe()
之前使用过class stars
。
第二行可能有所不同。
我相信是因为关键字virtual影响了功能的工作方式。
(即)在执行stp -> describe();
时,函数stars::describe()
会找到与存储在stp中的地址相关的对象类型,并因此对要调用的函数进行优先级排序。
如果我不清楚自己的意思,请发表评论(这是我的第一个问题)
非常感谢您宝贵的时间阅读本文,