一、虚函数 只有用virtual声明类的成员函数,使之成为虚函数,不能将类外的普通函数声明为虚函数。因为虚函数的作用是允许在派生类中对基类的虚函数重新定义。所以虚函数只能用于类的继承层次结构中。 一个成员函数被声明为虚函数后,在同一类族中的类就不能再定义一个非virtual的但与该虚函数具
分类:
其他好文 时间:
2016-03-13 15:54:06
阅读次数:
289
public、protected、private不仅是类中的访问限制符,在c++中“继承”中,它们还表示继承关系,public表示公有继承,protected表示受保护的,private表示私有的,如下图:B类继承A类,我们称A类为基类(父类),称B类为派生类(子类),子类包括父类的成员变量和成员函数,三种..
分类:
其他好文 时间:
2016-03-12 23:15:56
阅读次数:
437
1>构造函数能否为虚函数? 构造函数不能是虚函数,因为构造函数要是虚函数的话,那么实际执行的是父类的对应的函数,而不执行定义类的函数; 析构函数可以是虚构函数,而且,在一个复杂类的结构中,这往往是必要的,析构函数也可以是纯虚函数,但纯虚函数必须有定义体,因为析构函数的调用是在子类中隐含。 2>简述在
分类:
其他好文 时间:
2016-03-11 22:01:43
阅读次数:
145
面向对象的三大特征: 1. 继承 2. 封装 3. 多态 1>继承 面型对象中可以让某个类型的对象获得另一个对象的属性和方法。 2>封装 面向对象中将数据和代码封装在一起,避免外界的干扰和不确定性访问的特征。 3>多态 C++中的多态是通过虚函数来实现的,虚函数允许子类重新定义成员函数;而子类重新定
分类:
编程语言 时间:
2016-03-11 20:25:13
阅读次数:
160
1. 虚函数会导致的结果:直接上个经典例子... class A { public: void a() { cout<<"A.a"<<endl; } virtual void b() { cout<<"A.b"<<endl; } }; class B: public A { public: void
分类:
其他好文 时间:
2016-03-11 18:40:00
阅读次数:
172
实现基类(父类)以及派生类(子类),验证继承与转换--赋值兼容规则:子类对象可以赋值给父类对象(切割/切片)父类对象不能赋值给子类对象父类的指针/引用可以指向子类对象子类的指针/引用不能指向父类对象(可以通过强制类型转换完成)#include<iostream>
usingnamespa..
分类:
编程语言 时间:
2016-03-11 17:19:36
阅读次数:
188
虚析构函数: 虚析构函数用于当用基类删除派生类的对象时,基类定义虚析构函数可以将吊用派生类的析构函数。并不是要把所有类的析构函数都写成虚函数。因为当类里面有虚函数的时候,编译器会给类添加一个虚函数表,里面来存放虚函数指针,这样就会增加类的存储空间。所以,只有当一个类被用来作为基类的时候,才把析构函数
分类:
编程语言 时间:
2016-03-10 23:44:22
阅读次数:
398
C++ 对象的内存布局(上) 陈皓 http://blog.csdn.net/haoel 点击这里查看下篇>>> 前言 07年12月,我写了一篇《C++虚函数表解析》的文章,引起了大家的兴趣。有很多朋友对我的文章留了言,有鼓励我的,有批评我的,还有很多问问题的。我在这里一并对大家的留言表示感谢。这也
分类:
编程语言 时间:
2016-03-10 01:33:05
阅读次数:
280
C++ 虚函数表解析 陈皓 http://blog.csdn.net/haoel 前言 C++中的虚函数的作用主要是实现了多态的机制。关于多态,简而言之就是用父类型别的指针指向其子类的实例,然后通过父类的指针调用实际子类的成员函数。这种技术可以让父类的指针有“多种形态”,这是一种泛型技术。所谓泛型技
分类:
编程语言 时间:
2016-03-10 01:31:51
阅读次数:
301
近日在改动了一下下引擎代码(为了自己的组件),发现有些接口是仅仅有特定类及其内部函数才去訪问,却不使用友元声明的形式进行数据訪问——当然使用了普通非virtual的形式也就是意味着不建议重载。 故此: 1、建议派生类(或同意)重载的声明为虚函数即virtual类型, 2、强制派生类实现的声明为纯虚函
分类:
编程语言 时间:
2016-03-08 19:31:29
阅读次数:
121