在前篇
boost::serialization 用基类指针转存派生类(错误多多,一波三折)文中我们都是使用serialize函数来实现序列化,其代码格式如下:
private:
friend class boost::serialization::access;
template
void serialize(Archive& ar, const unsigned int ...
分类:
其他好文 时间:
2014-05-10 09:09:19
阅读次数:
520
本文意在巩固基础知识,并不是对其进行深入剖析,如若对各位高手没有什么作用,请绕过。本文为原创文,所有示例均是博主测试过的,欢迎大家批评指正,如有转载请标明出处,谢谢。继承、封装和多态是面向对象编程的重要特性。其成员被继承的类叫基类也称父类,继承其成员的类叫派生类也称子类。派生类隐式获得基类的除构造函...
分类:
其他好文 时间:
2014-05-07 18:06:10
阅读次数:
276
6.5.1 多重继承
Python也支持多种继承形式。一个能继承多个基类的类定义如下:
class DerivedClassName(Base1, Base2, Base3):
.
.
.
大多数情况,最简单而言,你可以把从父类继承下来的属性查询看成是遵循深度优先,从左到右。
而不是在同一等级重复的同样类中执行两次。因此,如果一个属性没在派生类中找到,首先会在base1然后再...
分类:
编程语言 时间:
2014-05-07 13:12:31
阅读次数:
310
本文只讲述typeid这个操作符,呃 ,它确实是一个操作符,类似于 sizeof 操作符。
在将该操作符之前,不得不提的是
RTTI(Run-Time Type Identification,运行时类型识别),其实就是说在运行期得到对
象的实际的类型。这立刻使我们想到了
“可以通过基类的指针和引用可以指向实际的派生类型”。啊哦,答对了,这就是typeid
这个强大操作符所做的事...
分类:
编程语言 时间:
2014-05-07 05:58:26
阅读次数:
350
在
怎样用boost::serialization去序列化派生模板类这篇文章中,介绍了序列化派生类模板类,
在写测试用例时一直出现编译错误,调了很久也没跳出来,今天偶然试了一下...居然调了出来。
先看看变异错误的代码(。。。看不出有错,可是编译就有错)。
基类代码:
class base_class
{
public:
base_cla...
分类:
其他好文 时间:
2014-05-07 03:54:45
阅读次数:
543
句柄类
句柄类的出现是为了解决用户使用指针时需要控制指针的加载和释放的问题。用指针访问对象很容易出现悬垂指针或者内存泄漏的问题。
为了解决这些问题,有许多方法可以使用,句柄类就是其中之一。句柄类是一种包装类,用于存储和管理基类的对象指针,减轻用户使用对象的负担。句柄类使用指针执行操作,虚成员由于既可以指向基类型又可以指向派生类型,所以其行为将在运行时根据句柄实际绑定的对象而变化。
...
分类:
编程语言 时间:
2014-05-06 15:24:34
阅读次数:
514
虚函数使用的时机为什么虚函数不总是适用? 1. 虚函数有事会带来很大的消耗; 2.
虚函数不总是提供所需的行为; 3. 当我们不考虑继承当前类时,不必使用虚函数。必须使用虚函数的情况: 1.
当你想删除一个表面上指向基类对象,实际却是指向派生类对象的指针,就需要虚析构函数。
分类:
编程语言 时间:
2014-05-05 09:36:24
阅读次数:
487
用基类的指针去转存派生类时除了上一篇boost::serialization 用基类指针转存派生类(错误多多,一波三折)之外,还有另一种更简单的方法:
用BOOST_CLASS_EXPORT宏。下面我们来分析怎样用BOOST_CLASS_EXPORT来实现
用基类的指针去转存派生类。
首先来看前面实例的一段代码:
void save()
{
std::ofstream ofs("t7.x...
分类:
其他好文 时间:
2014-05-04 09:48:50
阅读次数:
487
C++ Primer Plus学习笔记之继承类的初始化顺序
基类的构造函数,析构函数和操作符函数operator=是不能被派生类继承的;
那么,当创建一个派生类对象时,怎样调用基类的构造函数对基类的数据进行初始化呢???
答案是:构造函数执行时遵行先兄长(基类),再客人(对象成员),后自己(派生类)的顺序;
另一方面,执行析构函数时,先执行派生类的析构函数,再执行基类的析构函数。原因是,对...
分类:
编程语言 时间:
2014-05-04 09:41:27
阅读次数:
373