c++中virtual是是啥意思 5
展开全部
举个例子就明白了:
class A
{
virual fun()
{cout<<"a"<<endl;}
}
class B : public A
{
virual fun() //在子类中改写
{cout<<"B"<<endl;}
}
class C: public A
{
virual fun() //在子类中改写
{cout<<"C"<<endl;}
}
int main()
{
A * p ;
B mb;
C mc;
p=&mb;
p->fun();//输出B
p=&mc;
p->fun();//输出C
return 0;
}
同样是 p->fun();但结果不一样。
好吧,写着写着,感觉写多了。
通俗的说,就是基类做出来,让子类继承,并且可以在子类改写。
你可能会问,为何不直接在子类中写一个函数不是更快。
上面的例子就是一个很好的说明(临时写的,写的不怎么样),只用了一个指针就把两个函数都调用了。
再举个例子,就比如从 员工类 Y 中派生了 经理类 J,服务员类 F,保安类 B。这时候我用一个for循环就能把每个职位的某个信息比如工资输出来。而不用一个一个类的专门设计输出。
好吧,我承认还是没讲清楚。
class A
{
virual fun()
{cout<<"a"<<endl;}
}
class B : public A
{
virual fun() //在子类中改写
{cout<<"B"<<endl;}
}
class C: public A
{
virual fun() //在子类中改写
{cout<<"C"<<endl;}
}
int main()
{
A * p ;
B mb;
C mc;
p=&mb;
p->fun();//输出B
p=&mc;
p->fun();//输出C
return 0;
}
同样是 p->fun();但结果不一样。
好吧,写着写着,感觉写多了。
通俗的说,就是基类做出来,让子类继承,并且可以在子类改写。
你可能会问,为何不直接在子类中写一个函数不是更快。
上面的例子就是一个很好的说明(临时写的,写的不怎么样),只用了一个指针就把两个函数都调用了。
再举个例子,就比如从 员工类 Y 中派生了 经理类 J,服务员类 F,保安类 B。这时候我用一个for循环就能把每个职位的某个信息比如工资输出来。而不用一个一个类的专门设计输出。
好吧,我承认还是没讲清楚。
展开全部
virtual出现在程序中:
virtual 如果出现在函数名前表示虚函数,出现在类的继承关系中加在基类名前表示虚基类。
virtual 如果出现在函数名前表示虚函数,出现在类的继承关系中加在基类名前表示虚基类。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
虚拟的意思 C++标准情况是不存在virtual一词的,就是C++ virtual是windows下的C++开发环境 例如MFC STL这些都属于virtual C++
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |