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

Moxun的文章

程序开发语言

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

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

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

程序开发语言

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

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

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

程序开发语言

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

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

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

程序开发语言

浅谈继承机制

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

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

程序开发语言

浅谈类设计

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

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

程序开发语言

浅谈结构设计

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

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

二叉树

树——基础

树——基础
树 树在逻辑上是一对多的关系,是一种非线性结构。 树:是n(n>=0)个有限结点的集合。n=0时称为空树。在任意一棵非空树中:(1)有且只有一个特定的称为根(Root)的结点;(2)当n>1时,其余结点可分为m(m>0)个互不相交的有限集T1、T2、T3、……、Tm,其中每一个集合本身又是一棵树,并称为根的子树(SubTree)。如图: 结点的分类 结点拥……继续阅读 »

7个月前 (04-02) 223浏览 0评论 0个赞

算法数据结构

栈与队列

栈与队列
基础 栈是限定仅在表尾进行插入和删除操作的线性表。 队列是只允许在一端进行插入操作,另一端进行删除操作的线性表。 栈 栈是一种先进后出的结构。它是仅限定在表尾进行删除和插入操作的线性表。我们把允许插入和删除的一端称为栈顶(top),另一端称为栈底(bottom),不含任何数据元素的栈称为空栈。栈又称为后进先出(LIFO:Last In First Out)的……继续阅读 »

7个月前 (03-28) 234浏览 2评论 0个赞

算法数据结构

静态链表

静态链表
什么是静态链表 就是用数组来描述链表,数组中的元素由两个数据域组成,data和cur,你可以把数组的元素设想成有两个元素的结构体。数据域data用来存放数据元素,而cur相当于单链表中的next指针,存放该元素的后继在数组中的下标,我们把cur叫做游标。这种用数组描述的链表叫做静态链表,也叫游标实现法。为了便于数据的插入,这个静态数组,我们通常会建的大一些。……继续阅读 »

7个月前 (03-28) 222浏览 0评论 0个赞