所谓接口继承,就是派生类只继承函数的接口,也就是声明;而实现继承,就是派生类同时继承函数的接口和实现。我们都很清楚C++中有几个基本的概念,虚函数、纯虚函数、非虚函数。虚函数:虚函数是指一个类中你希望重载的成员函数,当你用一个基类指针或引用指向一个继承类对象的时候,你调用一个虚函数,实际调用的是继承...
分类:
编程语言 时间:
2014-10-19 14:14:51
阅读次数:
139
作用:作为基类使用的类应该具有虚析构函数,以保证在删除基类指针(动态分配的对象)时,根据指针实际指向的对象进行适当的析构。
请看下面这段代码;
#include
class A{
public:
A(){
std::cout << "A constructor execute" << std::endl;
}
~A(){
std::cout << "A destructor...
分类:
其他好文 时间:
2014-10-15 16:11:41
阅读次数:
195
继承虚函数调用 代码本文地址: http://blog.csdn.net/caroline_wendy派生类继承基类时, 使用virtual时, 会进行动态绑定, 没有virtual关键字则会覆盖.使用基类指针(Base*)指向派生类时, 调用函数, 则动态绑定的函数会调用派生类, 非动态绑定的函数调用基类.代码:/*
* main.cpp
*
* Created on: 2014.9.1...
分类:
编程语言 时间:
2014-09-12 12:01:53
阅读次数:
199
重载: a 相同的范围(在同一个类中) b 函数名字相同 c 参数不同(返回类型不足以区分重载函数) d virtual关键字可有可无重写:(实际上就是虚函数动态绑定) a 不同的范围,分别位于基类和派生类中 b 函数的名字相同 c 参数相同 e 一般情况下返回类型相同(除非返回类型分别为基类指针和...
分类:
其他好文 时间:
2014-09-05 19:41:01
阅读次数:
162
前言 在使用 C++ 实现多态的时候,有一点一定要清楚:当派生类对象经由基类指针被删除,而此基类的析构函数没有被声明为虚函数的话,那么析构函数只会释放基类部分的成员而无视派生类成员。 如果不对这一点加以防范,那么很多时候,会带来内存泄露这样灾难性的后果。解决之道 1. 对于要拿来实现多态的基类...
分类:
其他好文 时间:
2014-08-24 16:34:32
阅读次数:
135
基类指针不能调用派生类的独有的成员,此时可以使用static_cast来转换,但不要这么做,因为向下转换难看、容易导致错误,而且使得代码难于理解、升级和维护,static_cast不会进行类型检查,即使指针指向的对象的类型与转换的目标类型不一样,比如说指针指向基类对象,转换为派生类对象,此时仍然会继...
分类:
其他好文 时间:
2014-08-21 14:36:44
阅读次数:
182
/*这是从网上摘下的样例,主要讲述了 dynamic_cast 的用法。*/ /* 作用:将一个基类对象指针(或引用)cast到继承类指针,dynamic_cast会依据基类指针是否真正指向继承类指针来做对应处理, 即会作一定的推断。 对指针进行dynamic_cast,失败返回null,成功返.....
分类:
编程语言 时间:
2014-08-20 19:25:42
阅读次数:
214
最近重新看了遍基类指针、引用的相关知识点,一直在想 ,如果派生类不是公有继承,那么用基类指针、引用指向该派生类对象时会发生什么?派生类内的成员的访问权限会不会发生什么变化?
结果实验表明,系统不支持此类类型转换。基类指针、引用不能指向继承方式为protected与private的派生类对象。
假设我们有以下类:
class A
{
public:
int publi;
protecte...
分类:
其他好文 时间:
2014-08-14 14:15:08
阅读次数:
522
C++的继承操作---基类指针访问派生类问题---基类成员恢复访问属性问题...
分类:
编程语言 时间:
2014-08-13 22:25:37
阅读次数:
262
C++中的虚析构函数到底什么时候有用的,什么作用呢。总的来说虚析构函数是为了避免内存泄露,而且是当子类中会有指针成员变量时才会使用得到的。也就说虚析构函数使得在删除指向子类对象的基类指针时可以调用子类的析构函数达到释放子类中堆内存的目的,而防止内存泄露的。两段代码:#include using na...
分类:
编程语言 时间:
2014-07-29 12:23:26
阅读次数:
289