• 认真地记录技术中遇到的坑!

菱形继承问题和虚继承【转载】

菱形继承问题和虚继承【转载】
转载自:http://blog.csdn.net/jackystudio/article/details/17877219 菱形继承是多重继承中跑不掉的,Java拿掉了多重继承,辅之以接口。C++中虽然没有明确说明接口这种东西,但是只有纯虚函数的类可以看作Java中的接口。在多重继承中建议使用“接口”,来避免多重继承中可能出现的各种问题。 1.菱形继承 菱形……继续阅读 »

Moxun 5个月前 (05-29) 203浏览 0评论 0个赞

为什么C++的构造函数不可以是虚函数,而析构函数可以是虚函数

为什么C++的构造函数不可以是虚函数,而析构函数可以是虚函数
转载自:https://blog.csdn.net/zhang2531/article/details/51218149 1、为什么构造函数不可以是虚函数 ①从存储空间角度 虚函数对应一个vtable,这大家都知道,可是这个vtable其实是存储在对象的内存空间的。问题出来了,如果构造函数是虚的,就需要通过 vtable来调用,可是对象还没有实例化,也就是内……继续阅读 »

Moxun 5个月前 (05-29) 232浏览 0评论 0个赞

浅谈数据成员指针、函数成员指针、虚函数实现

浅谈数据成员指针、函数成员指针、虚函数实现
本文转载自:http://www.cnblogs.com/malecrab/p/5572119.html 我要手动抄一遍,加深印象。 1.数据成员指针 对于普通指针,其值就是它所指向的地址,0表示空指针。 而对于数据成员指针(这个描述实际上并不合适,它指的应该是类或者结构的数据成员的地址),它的值是相对于对象起始地址的偏移量,-1表示空指针。如图: 代码示……继续阅读 »

Moxun 5个月前 (05-28) 239浏览 0评论 0个赞

浅谈继承机制

浅谈继承机制
封装、继承、多态是面向对象的三大特征。继承可以机制可以说是起到了承上启下的作用,封装的本质就是类设计,继承的根本是使一个类具有另一个类的特征,多态则是在继承的基础上演进而来的(其实就是父类和子类的替换而已),这里说的多态,在C++种特指运行时多态。 在C++类中,类有三种方法:(1)纯虚函数;(2)虚函数;(3)非虚函数。在设计一个类时,尤其是基类时,要考虑……继续阅读 »

Moxun 5个月前 (05-28) 197浏览 0评论 0个赞

浅谈类设计

浅谈类设计
类是面向对象的根本。 利用数据结构的视角来探讨如何设计一个类。 类是某些具有共同特征的实体(对象)的一个抽象。这些实体可能是真实可感的客观实体(例如,人、桌子、椅子等等真实存在的实体),也可能是抽象实体,例如数据库。设计类时,实际上是一个由对象到类的逆推过程。 类设计的第一个关键问题是数据成员的选择(属性),在这个过程中,我们要先考虑对象的共性,对这些共性赋……继续阅读 »

Moxun 5个月前 (05-28) 171浏览 0评论 0个赞

浅谈结构设计

浅谈结构设计
为什么有时候即使是代码作者本身也不愿意对自己的代码进行review? 从自身实践出发,我认为可能有以下一些原因: 1.代码风格很差—-没有良好的命名风格,名字不能达到见名知其意的效果。命名规范可以参考谷歌C++编程规范。 2.在开发前期准备中,没有做好调研,导致逻辑混乱,条理不清,进一步引发的问题是,软件结构的设计不合理。—-用更简洁……继续阅读 »

Moxun 5个月前 (05-28) 167浏览 0评论 0个赞

Python中的基本数据结构:列表,元组,字典

Python中的基本数据结构:列表,元组,字典
Python列表 列表是最常用的Python数据类型,类似于Java或者C/C++语言中的数组,不过因为Python是弱类型的语言,所以数组中的元素可以类型不相同,甚至可以为对象。 Python列表创建 Python中可以使用[]创建列表,如下: list1 = ['baidu', 'alibaba', 1997, 2000] list2 = [1, 2, ……继续阅读 »

悠悠 6个月前 (05-01) 232浏览 0评论 1个赞

C++中的各种可调用对象

C++中的各种可调用对象
概述 一组执行任务的语句都可以视为一个函数,一个可调用对象。在程序设计的过程中,我们习惯于把那些具有复用性的一组语句抽象为函数,把变化的部分抽象为函数的参数。 函数的使用能够极大的极少代码重复率,提高代码的灵活性。 C++中具有函数这种行为的方式有很多。就函数调用方式而言 func(param1, param2); 这儿使用func作为函数调用名,para……继续阅读 »

悠悠 6个月前 (04-24) 262浏览 0评论 3个赞