摘要: 1、一旦将某个成员函数声明为虚函数后,它在类的继承体系中就永远为虚函数了。2、如果基类定义了虚函数,当通过基类指针或引用调用派生类对象时,将访问到它们实际所指对象中的虚函数版本。3、只有通过基类对象的指针和引用访问派生类对象的虚函数时,才能体现虚函数的特性。4、派生类中的虚函数要保持其虚特征,必须与基类虚函数的函数原型完全相同,否则就是普通的重载函数,与基类的虚函数无关。5、派生类通过从基类继承的成员函数调用虚函数时,将访问到派生类中的版本。6、只有类的非静态成员函数才能被定义为虚函数,类的构造函数和静态成员函数不能定义为虚函数。原因是虚函数在继承层次结构中才能够发生作用,而构造函数、静态成员 阅读全文
posted @ 2014-03-21 15:21 曦花 阅读(1380) 评论(0) 推荐(0)
摘要: 多态(polymorphism)就是指不同对象收到相同消息时会执行不同的操作。通俗地讲,就是用一个相同的名字定义许多不同的函数,这些函数可以针对不同数据类型实现相同或者相似的功能,即所谓的“一个接口,多种实现”。 C++中的多态性与联编这一概念密切相关。一个源程序需要经过编译、连接才能形成可执行文件,在这个过程中要把调用函数名与对应函数关联在一起,这个过程就是绑定(binding),又称联编。 绑定分为静态绑定和动态绑定。 静态绑定又称静态联编,是指在编译程序时就根据调用函数提供的信息,把它所对应的具体函数确定下来,即在编译时就把调用函数名与具体函数绑定在一起。 动态... 阅读全文
posted @ 2014-03-21 14:56 曦花 阅读(2469) 评论(0) 推荐(1)
摘要: 转自http://blog.csdn.net/fansongy/article/details/7045811C/C++是最主要的编程语言。这里列出了50名优秀网站和网页清单,这些网站提供c/c++源代码 。这份清单提供了源代码的链接以及它们的小说明。我已尽力包括最佳的C/C++源代码的网站。这不是一个完整的清单,您有建议可以联系我,我将欢迎您的建 议,以进一步加强这方面的清单。0、http://www.boost.org/1、http://snippets.dzone.com/tag/c/--数以千计的有用的C语言源代码片段2、http://www.hotscripts.com/catego 阅读全文
posted @ 2014-03-21 13:56 曦花 阅读(123) 评论(0) 推荐(0)
摘要: 转自http://blog.csdn.net/livelylittlefish/article/details/2198514构造函数:为对象分配存储空间,使一个对象初始化;析构函数:在该对象生命期完结时做相应的扫尾工作并释放分配的内存;构造函数不能是虚函数的原因:1、概念上说,虚函数机制只有在应用于地址时才有效,因为地址在编译阶段提供的类型信息不完整。构造函数的功能是为一个对象在内存中分配空间,也就是说,此时该对象的类型已经确定了,编译系统确切地知道应该调用哪个类的构造函数,不需要也不可能应用动态绑定。2、从实现上来说,每个对象的VPTR(指向本类虚函数的指针)是需要构造函数来初始化的(由编 阅读全文
posted @ 2014-03-21 11:41 曦花 阅读(348) 评论(0) 推荐(0)
摘要: 虚析构函数!虚函数可以被派生类集成,并且要求派生类与基类中的虚函数具有相同的函数名和参数列表,但构造函数与析构函数的两个特征都与此相违背:1、构造函数与析构函数都不能被派生类继承。2、构造函数和析构函数与所在类同名,所以他们在派生类和基类中的名字并不相同。尽管如此,C++却允许析构函数定义为虚函数(... 阅读全文
posted @ 2014-03-21 10:44 曦花 阅读(610) 评论(0) 推荐(0)