C++多态(上)——虚函数、虚表

OOP的核心思想是多态性(polymorphism)。其含义是“多种形态”。我们把具有继承关系的多个类型称为多态类型。引用或指针的静态类型和动态类型不同这一事实正是C++语言支持多态性的根本所在。 多态性:当用于面向对象编程的范畴时,多态性的含义是指程序能通过引用或指针的动态类型来获取类型特定...

2017-04-18 15:42:31

阅读数:549

评论数:1

C++继承详解三 ----菱形继承、虚继承

今天呢,我们来讲讲菱形继承与虚继承。这两者的讲解是分不开的,要想深入了解菱形继承,你是绕不开虚函数这一点的。它俩有着什么关系呢?值得我们来剖析。 菱形继承也叫钻石继承,它是多继承的一种特殊实例吧,它的基本架构如下图: 在我们的设想中,D所对应的对象模型应该如下图所示: 下面我们来用一段代码验...

2017-04-17 23:01:25

阅读数:384

评论数:0

智能指针(下)-----boost库智能指针,定制删除器、循环引用

上一篇我们已经详细讲解了智能指针的基础性知识和auto_ptr的模拟实现。 今天呢我们来讲解boost库的发展。 在C++11标准出来之前,C++98标准中都一直只有一个智能指针auto_ptr,我们知道,这是一个失败的设计。它的本质是管理权的转移,这有许多问题。而这时就有一群人开始扩展C++...

2017-04-15 16:54:48

阅读数:276

评论数:0

智能指针(上)-----动态管理内存问题,auto_ptr的模拟实现

今天我们来详解C++中一个重要的知识点——智能指针。文章主要以下面几点来展开: 智能指针定义及动态内存的管理 智能指针作用 auto_ptr的模拟实现 智能指针定义 智能指针简单理解就是智能的指针,它可以智能/自动化的管理指针所指向的动态内存的释放。 智能指针和普通指针的区别在于智能指针实际上...

2017-04-13 09:22:29

阅读数:687

评论数:0

模板2——顺序表的实现(现代写法的进一步解析,更深层次的深浅拷贝)

之前我们讲解了关于模板方面的知识,今天我们用模板来实现顺序表。 这次顺序表的实现和之前没有太大区别,但还是有几点需要我们来重点进行详解。 我们先来看下面这段代码#include<iostream> #include<string> #include<assert....

2017-04-11 11:45:20

阅读数:259

评论数:0

C++异常

今天我们来说说C++中有关异常的处理方法,异常的常见用法及特性。 一,有关错误的处理方法 返回错误码; 终止程序; 返回合法值,让程序处于某种非法的状态; 调用一个预先设置好出现错误时调用的函数——回调函数; 异常处理; 当一个函数发现自己无法解决的错误时抛出异常,让函数的调用者直接或间接...

2017-04-22 16:09:15

阅读数:183

评论数:0

C++继承详解二——默认成员函数

在这一篇文章开始之前,我先解决一个问题。   在上一篇C++继承详解之一——初探继承中,我提到了在派生类中可以定义一个与基类成员函数同名的函数,这样派生类中的函数就会覆盖掉基类的成员函数。   在谭浩强的C++程序设计这本书第十一章,351页最下面有这么一段话: 可在派生类中声明一个与基类...

2017-04-18 09:37:32

阅读数:883

评论数:0

C++模板详解

在平时写代码时,我们总会遇到这种问题:实现一个很简单的功能,但是由于传参过程中不同于形参类型的实参类型会使得你不得写多个功能相似的函数分别去实现他们,这就会造成许多问题,比如代码冗余,函数名太多造成名字空间的污染。这就需要其他方法来解决这种问题。之前在C语言学习中,我们学到了宏这一概念,宏可以一定...

2017-04-09 19:21:07

阅读数:236

评论数:0

C++继承详解一 ——继承、继承关系、赋值兼容规则、作用域

C++是一门面向对象的编程语言(OOP),它有三大特性:封装,继承,多态。 今天我来主要详解一下继承。 一,继承概念: 继承机制(inheritance)是面向对象程序设计中使代码可以复用的最重要手段。他允许程序员在保持原有类特性的基础上进行扩展,增加功能。继承是类之间的关系建模,共享公有的...

2017-03-30 13:30:29

阅读数:670

评论数:0

C++实现双向链表

上一篇用C++实现了单链表。今天呢,我们来看看双向链表如何通过C++实现。双向链表也叫双链表,它的的每个数据节点都有两个指针,分别指向直接后继和直接前驱。所以从双向链表中的任何一个节点开始,都可以很方便的访问它的前驱节点和后继节点。#include<iostream> #include...

2017-03-25 23:52:37

阅读数:158

评论数:0

C++实现单链表

之前通过C语言实现了单链表,今天我们来看看C++如何实现单链表? 下面是主代码:#include<iostream> #include<assert.h> using namespace std; typedef int DataType; struct SListNod...

2017-03-23 13:31:02

阅读数:389

评论数:0

动态内存分配

C语言中内存分配方式 1,从静态全局区分配    内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在,例如全局变量,static变量 2,在栈上分配    在执行函数时,函数内局部变量的存储单元都可在栈上创建,函数执行结束时这些存储单元自动释放,栈内存分配运算内置于cpu...

2017-03-14 12:20:17

阅读数:121

评论数:0

类的六个默认函数及运算符的重载

希望能帮助到你

2017-03-01 23:35:39

阅读数:143

评论数:0

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