virtual到底是实际还是虚拟的意思 , 为什么两个意思都有 矛盾啊根据句意哦,一般做虚拟用哦
virtual的意思到底是虚的,还是实的?这你要看情况,根据上下文或词组来判断
virtual reality 虚拟现实
virtual是什么意思 , 到底是“真的”,还是“假的”的意思 。是事实,还是虚拟?假的,虚拟的
virtual是虚拟还是实际的意思?。?/h3>是虚拟的意思 。就像微软的虚拟机(Virtual PC)那样 。
Virtual这个单词是虚拟的还是实质的意思?both are right
大概是这样的,有几乎是实际的意思(有一点虚拟的意味),虚拟的意思也用在一些专业的东西吧,例如虚拟计算机 。
又例如:物理也是Virtual的,人们不知道是否客观存在 , 但根据现象,几乎是实际存在的我是这样理解的
virtualbox有什么作用可以建立一个或多个虚拟电脑 , 主要用于安装系统模拟环境以熟悉操作 。
virtualbox主要用来做什么主要作用就是虚拟机,也就是说在一个电脑上在模拟出另一个系统进行使用 。virtualbox是不错的虚拟机软件了 。
oracle vm virtualbox有什么用虚拟机 要是想玩其他系统但有不常用只是尝试一下 这软件很好用 可以安装windows linux系统 也能安装mac 但是我没有安装成功mac系统
VirtualBox 增强包安装能起到什么作用鼠标在虚拟系统窗口和宿主系统之间自由出入,可以开启共享功能,方便在虚拟系统和宿主系统之间自由剪切粘贴等等!
virtualbox 比vmware少有哪些功能?装完系统安装 VMWare , 不开虚拟机,物理机开机就30多个进程,而且版本越高体积越庞大;有一种感觉,在Intel处理器上运行VMWare速度快,在AMD处理器上运行Virtual BOX比较快,Virtual PC没有明显区别;运行完VMWare或Virtual Box之后 , 退出虚拟机,感觉系统性能明显下降,但是注销或者重新开机就恢复正常,而Virtual pc没有此现象[:13:]
关键字virtual在C++中是什么意思,有什么用途?virtual 关键字用于修改方法或属性的声明 , 在这种情况下 , 方法或属性被称作虚拟成员 。虚拟成员的实现可由派生类中的重写成员更改 。
调用虚方法时,将为重写成员检查该对象的运行时类型 。将调用大部分派生类中的该重写成员 , 如果没有派生类重写该成员,则它可能是原始成员 。
默认情况下,方法是非虚拟的 。不能重写非虚方法 。
不能将 virtual 修饰符与以下修饰符一起使用:
staticabstractoverride
除了声明和调用语法不同外 , 虚拟属性的行为与抽象方法一样 。
在静态属性上使用 virtual 修饰符是错误的 。
通过包括使用 override 修饰符的属性声明,可在派生类中重写虚拟继承属性 。
c++类中继承时,virtual 关键字怎么用,例如:已改 , 看注释
#include
using namespace std;
class A
{
public:
A(int a1)
{a=a1;}
int a;
};
class B:virtual public A
{
public:
B(int a1,int b1):A(a1)
{b=b1;}
int b;
};
class D:virtual public B
{
public:
D(int a1,int b1,int d1):B(a1,b1) ,A(a1)//这里也要把A类的构造函数写上
{d=d1; }//编译时指向这错,为什么?
int d;
};
void main()
{
D dd(1,2,3);
cout<<dd.a<<endl;
cout<<dd.b<<endl;
cout<<dd.d<<endl;
}
C++中virtual怎么用?虚函数啊 。
比如基类有一个函数
派生类就继承了这个函数,而派生类自己也有一个函数名相同的函数 。。。
那编译的时候就不知道如果调用派生类对象的时候调用哪个函数了
加了virtual可以把函数的绑定推迟到运行时 。也就是你运行时绑定函数,根据你的参数调用基类函数还是派生类的函数
C++基类函数中的virtual关键词到底表示什么意思呢单纯想覆盖 , 不需要父类写好的功能的话 确实无所谓 。甚至可以说没有virtual关键字会提升一些函数调用的效率 。但是假如说你子类重载的函数希望调到父类函数功能 。比如class Parent {virtual void printSelf() {cout<<"I am your father"<<endl;}};class Son :public Parent{virtual void printSelf() {cout <<"son"<<endl;Parent::printSelf();}};希望达到这样的功能,父类的函数就必须有virtual关键字 。如果子类的这个函数没有virtual , 那么再继承他的类就不能这样重载 。
C++使用虚函数的时候,子类也要使用virtual关键字吗c++规定,当一个成员函数被声明为虚函数后 , 其派生类中的同名函数都自动成为虚函数 。因此,在子类重新声明该虚函数时,可以加 , 也可以不加,但习惯上每一层声明函数时都加virtual,使程序更加清晰 。
virtual 是什么意思语法标注解释 virtual英音:['v
c++中virtual是是啥意思virtual出现在程序中:
virtual 如果出现在函数名前表示虚函数,出现在类的继承关系中加在基类名前表示虚基类 。
VIRTUAL到底是什么意思?virtual company
虚拟企业
virtual company
网络
虚拟企业;动态联盟;虚拟公司
双语例句
1
Undergraduate virtual company extends our thought on innovation of practical education.
本科生虚拟公司为实践教学改革拓宽了新的研究思路 。
sql中virtual是什么意思实质上的,事实上的; (计算机)虚拟的; 有效的,虚像的; (粒子)实际存在的;
在sql中一般翻译成:虚拟的
virtual是什么意思virtual
虚拟
双语对照
词典结果:
virtual
[英][ˈvɜ:tʃuəl][美][ˈvɜ:rtʃuəl]
adj.实质上的 , 事实上的; (计算机)虚拟的; 有效的,虚像的; (粒子)实际存在的;
以上结果来自金山词霸
例句:
1.
A free virtual world seems more likable.
这样看来还是虚拟的世界更可爱一些 。
-----------------------------------
如有疑问欢迎追问!
满意请点击右上方【选为满意回答】按钮
virtual含义为什么既是虚拟的,又是实质上的?
文章插图
虚拟这里不是虚假的意思,应该叫做仿真,虚拟机,没有基于硬件 , 而是虚拟出来的机器,但是它实质上方方面面和真实的电脑操作没有任何的区别 。操作方法如下;1、首先运行Virtual PC,在弹出Virtual PC控制台界面下 , 选择新建 。2、在弹出的界面中,选下一步,在选项中,选中新建一台虚拟机 , 以基本配置需求创建一台虚拟机 。3、选择自己所需要的操作系统,这里选择windows XP,并点击下一步 。4、配置虚拟机内存,为了得到更好的性能,选择更改分配内存大?。?按自己的电脑实际配置进行分配 。5、这样之后就要配置好虚拟机的硬件要求了了,在界面中变会出现一个虚拟机的选项了 。
virtual中文是什么意思其实这个词从词源上来说就很好理解了 。virtual来自于virtue,本意指男子的良好品行,善良纯真的意思 , 试想一下virgin(处女),也是带有纯净的含义,而这种“纯”带有很抽象的含义 , 看不见摸不着,却真实存在,因此形容词virtual就有了事实上(表面看不到但事实存在)的意思,运用到计算机领域的虚拟现实(virtual reality),正是不物理性存在但却实际存在("not physically existing but made to appear by software)
C++中的virtual关键字是什么?怎么用?
文章插图
virtual是定义C++中虚函数的关键字。1、virtual关键字的作用:c++中的函数调用默认不适用动态绑定 。要触发动态绑定,必须满足两个条件:第一,指定为虚函数;第二,通过基类类型的引用或指针调用 。由此可见,virtual主要功能是实现动态绑定 。2、virtual关键字的使用情况:virtual可用来定义类函数和应用到虚继承 。友元函数 构造函数 static静态函数 不能用virtual关键字修饰;普通成员函数 和析构函数 可以用virtual关键字修饰 。3、virtual关键字的效果:class GrandFather //祖父类{public:GrandFather() {}//构造函数virtual void fun()//虚函数声明定义{cout << "GrandFather call function!" << endl;}};class Father : public GrandFather//父类 , 公有继承祖父类 {public:Father() {}//构造函数void fun()//fun函数声明定义{cout << "Father call function!" << endl;}};class Son : public Father//子类 , 公有继承父类{public:Son() {}//构造函数void fun()//fun函数声明定义{cout << "Son call function!" << endl;}};void print(GrandFather* father) //输出函数,祖父类形参{father->fun();//调用fun函数}int _tmain(int argc, _TCHAR* argv[]){Father * pfather = new Son;//建立一个父类的指针让它指向子类pfather->fun();GrandFather * pgfather = new Father;print(pgfather); //祖父类指针变量 return 0;}4、virtual的继承性:只要基函数定义了virtual,继承类的该函数也就具有virtual属性;即 GrandFather , Father ,Son同时定义virtual void fun()与GrandFather一个定义virtual void fun效果是一样的 。扩展资料vitual关键字的用途:1、vitual基类在多重继承中,从派生类到基类存在多条路线时(多个继承脉络或者途径) , 一个这种派生类的对象实例化将包含多个基类对象,浪费资源且调用混乱的现象出现 。因此引入了vitual baseclass,来在运行阶段克服多个基类对象的产生 。这个vitual是在运行阶段保证对象唯一性的 。2.vitual函数虚函数的出现,是由于基类的指针可以执行派生类,因此引出了不便,引入vitual函数,来告诉编译器,出现这种情况时,在运行时动态链接进行处理 。3.vitual在纯虚函数中使用纯虚函数完全是为了继承体系的完整,也是集成vitual函数的作用而产生的 。代表了编译器阶段对象的绑定,将调用选择转移到运行时动态绑定 。综上:vitual关键的引入 , 可以理解为阻止编译阶段的静态绑定 , 将绑定(虚函数)和约束工作(虚基类)转移到运行时动态处理 。参考资料:百度百科——virtual
mixblu中文翻译是什么意思mixblu完整的写法:mixblueand yellow,译作:把蓝色和黄色混合 。1、Stewart has developed a tendency to mix it verbally with the opposition.斯图尔特现在变得只要和别人意见不合 , 就准备大吵一架 。2、The song is a fiery mix of twanging guitar with relentless drumming.那是一首夹杂着撩拨的吉他声和密集的鼓点的激情四射的歌曲 。3.To save time we used packets of pizza dough mix.为了节约时间,我们用了几包做比萨饼的混合面粉 。
Eddle是什么意思中文翻译?Eddle这个单词可能是克罗地亚语,它的意思是:漩涡
望采纳!
求amor virtual歌词的中文翻译..为什么不来找我,在互联网上?
余点燃了断言,如果你的Skype出现 。
附手机 , 不认为他们会释放 。
我知道你要去的短信CentOS的几千倍 。
一遍又一遍听你的信息
连我自己也录得的MP3 。
我的路线是开放的家庭 。岩本!我在这里 。
白天和晚上保持清醒等待肯尼 。
直接连接已刻不容缓 。
有或远或近,如果有虚拟的爱 。
哦,哦,哦,哦,
哦,哦!
超级,超级,超级连接良好
哦,哦 , 哦,哦,
哦,哦!
我们宣布同YouTube上的人很多
你想在世界已经知道你对我的感觉 。
我喜欢听一遍又一遍的消息再次
连我自己也录得的MP3 。
我的路线是开放的家庭 。岩本!我在这里 。
白天和晚上保持清醒等待肯尼 。
直接连接已刻不容缓 。
有或远或近 , 如果有虚拟的爱 。
哦 , 哦,哦,哦,
哦,哦!
超级,超级,超级连接良好
哦,哦 , 哦 , 哦 ,
哦,哦!
连接 。
超级连接良好
超致密的连接 。
叽叽喳喳到Facebook
我的屏幕上千人拍照 , 我只在乎你 。
我的路线是开放的家庭,摇滚这个!我在这里 。
白天和晚上保持清醒等着你 。
直接连接已刻不容缓
有或远或近 , 如果有虚拟的爱 。
我的路线是开放的 , 看我!我在这里 。
白天和晚上保持清醒等着你 。
直接连接已刻不容缓 。
有或远或近,如果有虚拟的爱
哦,哦,OIH,澳
全新版大学英语第二册第4单元the virtual world课文翻译虚拟世界的生活
迈亚·塞拉维茨
在网上呆了太久,听到电话铃声也会吓一大跳 。显示屏上看多了我男朋友那些一目了然的文字 , 他的利物浦口音一下子变得难以听懂;而秘书的清脆快速的语调听上去比我想象的要生硬 。时间本身变得捉摸不定——几小时变成几分钟,或几秒钟延伸为几天 。周末原本是我一周的黄金时段,现在却不过是平平常常的两天 。
在我不再当电视制片人的这三年间,我的大部分工作都是在家里使用计算机终端进行的 。我通过电子邮件投稿和校订,利用互联网上的人名地址与同行交流 。我男朋友住在英国 , 因此两人的关系也在很大程度上借助于电脑维系 。
我要是愿意的话,可以一连几个星期不出门而什么也不缺 。我可以在网上订购食品、网上理财、网上恋爱、网上工作 。事实上我有时独自呆在家里长达三个星期 , 只偶尔出去拿信、买报纸及日用品 。1996年那一场接一场的暴风雪我大都是在电视上看到的 。
然而,一段时间之后,生活本身就显得不那么真实了 。我开始觉得自己似乎与机器融为一体了,我接收信息,再发送出去,就如同互联网的一个连接点 。其他上网的人也谈到了同样的症状 。我们开始厌恶外面的社交方式 。我们的状况成了批评互联网的人们最害怕见到的一幕 。
初看似高级的享受如今却成为一种对生活的逃避,一种缺乏自律的表现 。你一旦开始用网络交际取代人与人的真实接触,要走出这种穴居状态就会相当困难 。
我发现自己变得比以前怯生、谨慎、焦虑 。或者,反过来 , 当我突然面对现实中活生生的人时,会变得过于兴奋 , 说个不停,爱打断别人的讲话 。我老是担心自己衣着是否得体,担心自己会不会真的忘了穿裙子,只穿着夜间睡觉、白天活动时穿的那件T恤和内衣就出门了 。
有时我把电视机开着,让它作为背景声音一直响着,以前我从不这样做 。电视节目中的说话声让人感到宽慰,可那些广告又叫我心烦 。我发现自己沉浸在肥皂剧里,或者不停地收看最新的新闻报道和天气预报 。一而再再而三地从“每日新闻”、“一线新闻”、 “夜间新闻”、 有线新闻电视网、纽约一套上收看有关每一条新闻的各种不同视角的报道,尽管它们对我毫无用处 。工作成了次要的 。我决定去看一下自己的电子信箱 。
在网上 , 我发现自己见谁攻谁 。我脾气暴躁 , 动辄生气 。我觉得我与之通信的每一个人都麻木不仁,认为他们已经忘却还有人真会去读他们那些刻薄伤人的言辞 。直到有人礼貌地指出,她同意我的观点却遭到我的抨击时,我才意识到,自己是在以己度人,不由得深感尴尬 。
在这种精神状态下,我也和男朋友吵架 , 常因键出的对话缺乏情感暗示而误解他的本意 。由于系统常出故障,两人一争就是几个小时 。我写一句,他回一句 , 接着系统失灵!可我们俩还是锲而不舍地接着吵 。
以前我从未意识到日常的生活起居是多么重要,如穿戴整齐去上班,按时就寝 。以前我从未想过自己会那么依赖同事做伴 。我开始理解为什么长时间的失业会那么伤人 , 为什么一个人的生活缺少了外部支持的日常计划就会导致吸毒、犯罪、自杀率的增长 。
为了恢复生活的平衡,我强迫自己回到真实世界中去 。我给别人打电话,与所剩无几的仍然住在纽约城的几个朋友安排见面 。我至少设法去去健身房,以便使周末与工作日有所不同 。我安排采访好写报道,预约看医生——安排任何需要我出门与他人接触的活动 。
但有时面对面地与人相处实在难以忍受 。我与一位朋友见面,她那种响亮的笑声让人忍无可忍——饭店里的噪杂谈话声也让人受不了 。我找了个藉口逃之夭夭 。我重新回到我的公寓,冲向电脑,似乎那儿才是一个安全的地方 。
我点击鼠标,打开调制解调器,曾经听了就烦的连接声此刻听起来就如同最心爱的曲子那么悦耳 。我键入密码 。真实世界转瞬便消逝了 。
virtual含义为什么既是虚拟的,又是实质virtual 和 practical 这一类的词都表示『非常接近实际(reality)』,但距离真正的 fact 还差那么一点意思( real 和 actual) 。practical 一般指实践上的 。而这一类词在作副词时都表示『几乎』的意思(通常在口语中用的比较多 , 有种夸张的意思在里头),例如 practically everyone 是『几乎所有人』,但事实上并非所有人 。所以把 practically 翻译成 『实践中如此』、『简直』、『99%的事实上』都是没问题的,但翻译成『实际上的』是错的,可现实中能看到有很多这样的翻译 。
virtually 也是这个道理,你可以翻译成『几乎』、『简直就是实质上』,但从科学严谨的角度出发就是不能翻译成『实质上』 。
virtual这个单词为什么既有虚拟的意思,又有实际上的意思?1.很接近的,事实上的.实际上的
但这个词用于“很接近的,几乎...的“比较多,而不是实质的
如,he married a virtual stranger.
意为,他和一个几乎是不相识的人结婚了.
2.虚拟的,模拟的
英文解答是:
made to appear to exist by the use of computer software
通过计算机软件使得something存在,即为虚拟的,
所以,一般看见这个词都是在说虚拟的,如virtual library虚拟的图书馆
virtual为什么即可以是虚拟的又可以是实际上的 , 事实上的 。其实是因为用在了不同的领域 。
adj. 实质上的 , 事实上的;(计算机)虚拟的;有效的,虚像的;
只有在计算机领域里面才是虚拟的意思 。在现实生活中还是 实际上事实上的意思 。
供参考 。
virtual为什么既有“本质上的”和“虚拟的”两种相反的意思??你看英文的解释就明白了:
Existing or resulting in essence or effect though not in actual fact, form, or name
就是说要“透过现象看本质”,并不一定以形式的存在而决定其是否存在 。它可能是虚的 , 但它有本质的内容 。
打个比方,我们的网络世界 , 人人都说是虚拟的世界,从形式上,它的存在只不过是电子信号的来来往往,而本质上,它是一个无比真实的世界,就像我现在正在回答你的问题一样,这样的virtual,本质上看是存在的 , 对吗?
呵呵 , 不知道你明白了没有 。
有个建议,每当有疑惑的时候,去查英英字典,会有很多帮助,不要用中文的概念去直接理解英文,那样往往会误导 。翻译virtual的时候,要看上下文,看从什么角度出发,来决定 。
virtual这个单词怎么理解?为什么是虚拟的又是实质的?只有在计算机用语里面才是虚拟的 , 仿真的意思其他都是实质的
virtual的近义词与反义词是什么呀 还有我近义词是actual,反义词是practical
一般情况下这个词被理解为是实质上的,最终的.还有个意思是虚拟的,但是比较少用
英文单词问题~virtual这个词,有事实上的,和虚拟的两个意思,这俩意思不正好相反吗?怎么解?怎用处不同 。
只有用于描述互联网上的事物, 或者计算机模拟的事物才可以解释为虚拟的 。
其他时候指“事实上的”,或者更准确地说“几乎是” , 英文解释 Very nearly a particular thing. (Longman Dictionary).
这两个意思都指“差不多是,但又不完全是” , 所以并不矛盾 。
参考自:http://zhidao.baidu.com/link?url=jVhKyZStpYcJs7VAHbd8mBI_7gvOzxymB7g5n5fvyF_BvEOXlsbC2RHjtPke9swQrNTHxcgwVGh2C5aDl6H7ua
virtual这个单词怎么记忆比较好虚拟就是它......
virtual是什么意思virtual
[英][ˈvɜ:tʃuəl][美][ˈvɜ:rtʃuəl]
adj.实质上的,事实上的; (计算机)虚拟的; 有效的,虚像的; (粒子)实际存在的;
望采纳,谢谢
c#里面virtual 有什么用...不是很了解首先你如果不用virtual重写的话,系统默认会为你加new关键字,他的作用是覆盖 , 而virtual的关键作用在于实现多态,理解一下多态你就会明白为什么这么用了,对于日后软件版本的升级,实现版本兼容性,甚至于扩展都非常重要
C++中虚函数的作用是什么?它应该怎么用呢?
文章插图
C++中虚函数的作用:1、简单地说,那些被virtual关键字修饰的成员函数 , 就是虚函数 。2、实现多态性,多态性是将接口与实现进行分离 。3、当基类指针指向一个子类对象,通过这个指针调用子类和基类同名成员函数的时候,基类声明为虚函数就会调子类的这个函数 , 不声明就会调用基类的 。C++中虚函数的用法:1、比如你有个游戏,游戏里有个虚基类叫「怪物」,有纯虚函数 「攻击」 。2、派生出了三个子类「狼」「蜘蛛」「蟒蛇」,都实现了自己不同的「攻击」函数,比如狼是咬人,蜘蛛是吐丝 , 蟒蛇把你缠起来 。3、出现好多怪物的时候就可以定义一个 虚基类指针数组,把各种怪物的指针给它,然后迭代循环的时候直接 monster[i]->attack() 攻击玩家就行了,大概见下图:扩展资料:使用虚函数的注意事项:1、包含虚函数的类指针列表会增大 。2、虚析构函数(1)析构函数的作用是在对象撤销之前做必要的“清理现场”的工作 。(2)当派生类的对象从内存中撤销的时候,会先先调用派生类的析构函数然后再调用基类的析构函数 。(3)当我们new一个临时对象时,若基类中包含析构函数,并且定义了一个指向该基类的指针变量 。3、构造函数不能声明为虚函数构造函数不能声明为虚函数 。如果声明为虚函数,编译器会自动报出 。4、不在析构或者构造过程中调用虚函数在析构函数或者是构造函数中,我们绝对不能调用虚函数 。即使,我们在构造函数或者析构函数中调用虚函数,也不会下降至派生类中调用函数 。参考资料来源:虚函数—百度百科
虚函数有什么作用虚函数的作用
2009-02-09 10:44:14
在面向对象的C++语言中,虚函数(virtual function)是一个非常重要的概念 。因为它充分体现了面向对象思想中的继承和多态性这两大特性 , 在C++语言里应用极广 。比如在微软的MFC类库中,你会发现很多函数都有virtual关键字,也就是说,它们都是虚函数 。难怪有人甚至称虚函数是C++语言的精髓 。
那么,什么是虚函数呢,我们先来看看微软的解释:
虚函数是指一个类中你希望重载的成员函数,当你用一个基类指针或引用指向一个继承类对象的时候,你调用一个虚函数 , 实际调用的是继承类的版本 。
——摘自MSDN
这个定义说得不是很明白 。MSDN中还给出了一个例子,但是它的例子也并不能很好的说明问题 。我们自己编写这样一个例子:
#i nclude "stdio.h"
#i nclude "conio.h"
class Parent
{
public:
char data[20];
void Function1();
virtual void Function2(); // 这里声明Function2是虚函数
}parent;
void Parent::Function1()
{
printf("This is parent,function1\n");
}
void Parent::Function2()
{
printf("This is parent,function2\n");
}
class Child:public Parent
{
void Function1();
void Function2();
} child;
void Child::Function1()
{
printf("This is child,function1\n");
}
void Child::Function2()
{
printf("This is child,function2\n");
}
int main(int argc, char* argv[])
{
Parent *p; // 定义一个基类指针
if(_getch()=='c') // 如果输入一个小写字母c
p=&child; // 指向继承类对象
else
p=&parent; // 否则指向基类对象
p->Function1(); // 这里在编译时会直接给出Parent::Function1()的
入口地址 。
p->Function2(); // 注意这里,执行的是哪一个Function2?
return 0;
}
用任意版本的Visual C++或Borland C++编译并运行,输入一个小写字母c,得到下面的结果:
This is parent,function1
This is child,function2
为什么会有第一行的结果呢?因为我们是用一个Parent类的指针调用函数Fuction1(),虽然实际上这个指针指向的是Child类的对象,但编译器无法知道这一事实(直到运行的时候,程序才可以根据用户的输入判断出指针指向的对象),它只能按照调用Parent类的函数来理解并编译,所以我们看到了第一行的结果 。
那么第二行的结果又是怎么回事呢?我们注意到,Function2()函数在基类中被virtual关键字修饰 , 也就是说,它是一个虚函数 。虚函数最关键的特点是“动态联编” , 它可以在运行时判断指针指向的对象,并自动调用相应的函数 。如果我们在运行上面的程序时任意输入一个非c的字符,结果如下:
This is parent,function1
This is parent,function2
什么是c++虚函数,虚函数的作用和使用方法在某基类中声明为 virtual 并在一个或多个派生类中被重新定 义的成员函数,用法格式为:virtual 函数返回类型 函数名(参数表) {函数体};实现多态性,通过指向派生类的基类指针或引用,访问派生类中同名覆盖成员函数 。虚函数定义:简单地说,那些被virtual关键字修饰的成员函数,就是虚函数 。虚函数的作用,用专业术语来解释就是实现多态性(Polymorphism) , 多态性是将接口与实现进行分离;用形象的语言来解释就是实现以共同的方法,但因个体差异 , 而采用不同的策略 。虚函数的作用:用同一个调用形式,既能调用派生类又能调用基类的同名函数 。虚函数的使用方法是:在基类用virtual声明成员函数为虚函数 。这样就可以在派生类中重新定义此函数,为它赋予新的功能,并能方便地被调用 。在类外定义虚函数时,不必再加virtual 。在派生类中重新定义此函数 , 要求函数名、函数类型、函数参数个数和类型全部与基类的虚函数相同 , 并根据派生类的需要重新定义函数体 。C++规定,当一个成员函数被声明为虚函数后,其派生类中的同名函数都自动成为虚函数 。因此在派生类重新声明该虚函数时 , 可以加virtual,也可以不加 , 但习惯上一般在每一层声明该函数时都加virtual,使程序更加清晰 。如果在派生类中没有对基类的虚函数重新定义,则派生类简单地继承其直接基类的虚函数 。定义一个指向基类对象的指针变量,并使它指向同一类族中需要调用该函数的对象 。通过该指针变量调用此虚函数 , 此时调用的就是指针变量指向的对象的同名函数 。通过虚函数与指向基类对象的指针变量的配合使用 , 就能方便地调用同一类族中不同类的同名函数,只要先用基类指针指向即可 。如果指针不断地指向同一类族中不同类的对象 , 就能不断地调用这些对象中的同名函数 。这就如同前面说的,不断地告诉出租车司机要去的目的地 , 然后司机把你送到你要去的地方 。
在C++中用虚函数的作用是什么?为什么要用到虚函数【virtual】虚函数:在某基类中声明为 virtual 并在一个或多个派生类中被重新定 义的成员函数,用法格式为:virtual 函数返回类型 函数名(参数表) {函数体};实现多态性,通过指向派生类的基类指针或引用 , 访问派生类中同名覆盖成员函数 。
众所周知,在同一类中是不能定义两个名字相同、参数个数和类型都相同的函数的,否则就是“重复定义” 。但是在类的继承层次结构中 , 在不同的层次中可以出现名字相同、参数个数和类型都相同而功能不同的函数 。例如在例12.1(具体代码请查看:C++多态性的一个典型例子)
程序中,在Circle类中定义了
area函数,在Circle类的派生类Cylinder中也定义了一个area函数 。这两个函数不仅名字相同,而且参数个数相同(均为0),但功能不
同,函数体是不同的 。前者的作用是求圆面积,后者的作用是求圆柱体的表面积 。这是合法的,因为它们不在同一个类中 。
编译系统按照同名覆盖的原则决定调用的对象 。在例12.1程序中用cy1.area( )
调用的是派生类Cylinder中的成员函数area 。如果想调用cy1 中的直接基类Circle的area函数,应当表示为
cy1.Circle::area() 。用这种方法来区分两个同名的函数 。但是这样做 很不方便 。
人们提出这样的设想,能否用同一个调用形式,既能调用派生类又能调用基类的同名函数 。在程序中不是通过不同的对象名去调用不同派生层次中的同名函数,而是通过指针调用它们 。例如,用同一个语句“pt->display( );”可以调用不同派生层次中的display函数,只需在调用前给指针变量 pt 赋以不同的值(使之指向不同的类对象)即可 。
打个比方,你要去某一地方办事 , 如果乘坐公交车,必须事先确定目的地 , 然后乘坐能够到达目的地的公交车线路 。如果改为乘出租车,就简单多了,不必查行车路
线,因为出租车什么地方都能去,只要在上车后临时告诉司机要到哪里即可 。如果想访问多个目的地,只要在到达一个目的地后再告诉司机下一个目的地即可,显
然,“打的”要比乘公交车 方便 。无论到什么地方去都可以乘同—辆出租车 。这就是通过同一种形式能达到不同目的的例子 。
C++中的虚函数就是用来解决这个问题的 。虚函数的作用是允许在派生类中重新定义与基类同名的函数 , 并且可以通过基类指针或引用来访问基类和派生类中的同名函数 。
- java是什么软件
- lcd和oled
- virtualbox虚拟机
- qq影音官网
- 新鲜海带到底煮几分钟 新鲜海带需要煮多久
- itunes软件
- 百度硬盘搜索
- 海香菇到底是什么 海香菇的介绍
- 金海菇到底是什么 金海菇简单介绍
- 晒干保存是抑制呼吸作用吗 到底晒干保存是抑制呼吸作用吗