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

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

2017-04-18 15:42:31

阅读数:568

评论数:1

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

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

2017-04-17 23:01:25

阅读数:425

评论数:0

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

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

2017-04-15 16:54:48

阅读数:302

评论数:0

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

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

2017-04-13 09:22:29

阅读数:711

评论数:0

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

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

2017-04-11 11:45:20

阅读数:268

评论数:0

STL list的简单实现及list迭代器失效问题

上一篇我针对不同的数据结构来演示了迭代器的使用,今天我们主要来看看STL list的使用及他的模拟实现。 首先我们来实现list节点的结构体。看下面代码: templateT> struct __ListNode { T _data; __ListNode* _nex...

2017-04-27 18:23:04

阅读数:374

评论数:0

迭代器的使用

这一篇以至下一篇文章我来讲解关于迭代器。今天呢,我们重点了解迭代器以及了解掌握迭代器的使用。 迭代器(iterator)有时又称游标(cursor),是程序设计的软件设计模式,他是专门为访问容器而设计的一种数据结构,他实际是对访问容器这一操作进行了封装。也有一种说法是迭代器是指针的封装。和智能...

2017-04-24 22:15:06

阅读数:229

评论数:0

C++异常

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

2017-04-22 16:09:15

阅读数:197

评论数:0

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

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

2017-04-18 09:37:32

阅读数:1052

评论数:0

C++模板详解

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

2017-04-09 19:21:07

阅读数:247

评论数:0

Linux进程管理之PCB

首先呢,我们来认知一下程序和进程。程序是为实现特定目标或解决特定问题而用计算机语言编写的命令序列的集合。而进程是操作系统对一个正在运行着的程序的一种抽象。 我呢是下面这样来理解程序与进程的区别的,有不全面的地方多多指教。 PCB是什么呢?下面我们就来详细聊聊这PCB。 每个进程在内核中都...

2017-04-09 15:06:04

阅读数:1562

评论数:0

Linux下简单进度条的实现

首先呢,我给出代码和进度条效果图,后面来进行详解。 如上图所示,这进度条实现的也着实简单(略显尴尬),但进度条原理本质就是如此,只不过多了些修饰,下面来进行详解。 unistd.h是C、C++程序设计语言中提供对POSIX(可移植操作系统接口)操作系统API的访问功能的头文件的名称。 usl...

2017-04-09 11:51:12

阅读数:334

评论数:0

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