阳光日志

向着阳光,每天进步一点点!

排序:
默认
按更新时间
按访问量

C++类有继承时,析构函数必须为虚函数

虚函数与多态一文中讲了虚函数的用法和要点,但少讲了一点,就是虚函数在析构中的用法,本文就是修复一bug的。C++类有继承时,析构函数必须为虚函数。如果不是虚函数,则使用时可能存在内在泄漏的问题。假设我们有这样一种继承关系: 如果我们以这种方式创建对象:SubClass* pObj = n...

2016-12-21 09:24:14

阅读数:5463

评论数:0

C Runtime Library 的来历

运行时库就是C Run-Time Library,是C而非C++语言世界的概念。取这个名字就是因为你的C程序运行时需要这些库中的函数。 C Run-Time Library里面含有初始化代码,还有错误处理代码(例如divide by zero处理)。你写的程序可以没有 math库,程序照样运行,只...

2015-10-11 17:45:59

阅读数:4437

评论数:0

assert预处理宏与预处理变量

assertassert是一个预处理宏,由预处理器管理而非编译器管理,所以使用时都不用命名空间声明,如果你写成std::assert反而是错的。使用assert需要包含cassert或assert.h,用法如下:assert(expr) assert主要用途是:用于调试,检测一些不应该出现的情况。...

2015-07-26 23:47:20

阅读数:2402

评论数:0

C++“隐藏实现,开放接口”的实现方案

为什么要有接口?接口就是一个程序与其它程序交流的窗口。就比如有一个电视机,我并不需要知道它是怎样工作的,我只要知道按电源键就可以开启电视,按节目加(+)减(-)可以切换电视频道就可以了。Java程序员都知道Java中有interface可以实现对外的接口,但C++并没有接口这样的语法,那它要好怎样...

2015-07-24 00:10:52

阅读数:5962

评论数:6

C++中类的多继承

在写这一主题的文章之前,在网上找到一篇很非常好的文章C++之继承与多态。就没有必要做重复造轮子的事件了,那就从这篇文章开始吧!在c++中一个类可以从多个基类中派生(即可以有多个父类),这就是多继承。多继承的方式主要有两种:1. 简单版本 类C会同时拥有类A和类B的特性(属性和方法,也就是两个...

2015-07-19 23:07:43

阅读数:12628

评论数:2

虚函数与多态

假设我们有三个类Person、Teacher、Student它们之间的关系如下: 类的关系图 普通成员函数【Demo1】 根据这个类图,我们有下面的代码实现#ifndef __OBJEDT_H__ #define __OBJEDT_H__#include <string>...

2015-07-19 00:28:49

阅读数:2470

评论数:0

交叉引用的解决方法——类声明的应用

交叉引用的解决方法什么是交叉引用?什么是交叉引用?一言以蔽之,就是:A类中包含B类的对象,B类中包含A类的对象。以一场景为例我们先来看一个场景。假设有一个电子文档(Document)、一个文档下有多个页(Page),每个页下有多个文本单元(TextUnit,表示文档内元素的基本单位),一个文档中的...

2015-07-12 23:00:39

阅读数:3240

评论数:1

提示
确定要删除当前文章?
取消 删除
关闭
关闭