求教,c++中什么时候使用虚函数??

求教,c++中什么时候使用虚函数??,第1张

首先你要明白C++为什么要引进虚函数这个机制,

虚函数就是在基类中被关键字virtual说明,并在派生类中重新定义的函数。虚函数的作用是允许在派生类中重新定义与基类同名的函数,并且可以通过基类指针或引用来访问基类和派生类中的同名函数。

从以上的定义来看,需函数简单的说就是为了让基类指针能够指向派生类中与基类同名的函数而引进的,举个简单的例子,1:你定义了一个“图形类”这样的基类,然后再类中定义了一个求图形周长的函数(不是虚函数);2:现在再定义这个“图形类”的一个派生类“三角形类”,中也含有一个求三角形周长的函数(不是虚函数);3:再定义一个这个“图形类”的一个派生类“矩形类”,中也含有一个求矩形周长的函数(不是虚函数);4:现在回到主函数,你定义了这个“图形类”的一个指针(即基类的指针),根据C++的规定,基类的对象指针可以指向它的公有派生类的对象,但是当其指向公有的派生类对象时,它只能访问派生类中从基类继承来的成员,而不能访问公有派生类中定义的成员。

所以,你定义的这个指针是不能够指向“三角形”和“矩形”类中定义的那个周长函数,但是,如果你在基类中将这个周长函数定义为虚函数,则这样的代码是允许的,而且能够到达预期目的。

为什么呢?你想想你在基类中只定义一个基类指针,可以通过改变基类指针所指的对象(即派生类对象),就可以通过指针访问这个虚函数(虚函数的函数原型是一样的)而完成不同图形周长的计算和输出,显然,这是很值得提倡的,因为你只需“p->perimeter”一个代码就能完成很多图形的工作。

不知道,你能否明白,总的来说就是虚函数就是为了让基类指针(或引用)能访问派生类中定义的成员。

学C语言的话写出真正的窗口程序有很多的路要走。如果感觉C已经学的很好了,可以去学C++,这两种语言是绝对相通的,个人认为学C++,不是在学一种语言而是在继C之后学习一种软件开发思想。觉得C/c++是每一个程序员应该掌握的基本语言。C++学完后就可以去看windows 软件开发的书,基本都是C++的教程。这样就学完冰棱一角了,此时你应该已经对MFC有很多了解,因为MFC封装的很深,学起来也比较简单。至于API,怎么说呢,最好还是深入学习下。

如果楼主只是想自己写小软件混论坛什么的话,delphi和VB都可以,很简单的。当然,如果能把API学透的话,什么语言都一样,不同的只是编程思想。

清华大学电子信息工程专业使用的教材:《电路理论基础》、《模拟电子技术基础》、数字电子技术基础》、《信号与系统分析》、《 计算机组成原理》、《 C++语言程序设计》、《数字信号处理教程》。

清华大学电子工程系位于电子工程系位于清华大学的清华-罗姆电子工程馆,地下3 层,地上11 层,总楼面面积为32,553平方米。 由日本罗姆公司捐资兴建,总建筑面积32553平方米。

前身是1932年设立的电机工程系电讯组,于1952年秋建系始称无线电工程系,由清华大学、北京大学两校电机系电讯组合并而成。

电子工程系有在校本科生1020人,硕士研究生477人,博士研究生421人。该系现有电子科学与技术、信息与通信工程二个博士后流动站,在站博士后31人。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/11093941.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-13
下一篇 2023-05-13

发表评论

登录后才能评论

评论列表(0条)

保存