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

C++基础 虚函数

在基类中可能会存在virtual函数,那么当派生类继承了基类的话,一般都是希望派生类重新定义继承来的virtual函数。如果派生类没有定义某个虚函数,则使用基类定义的版本。C++中的函数调用默认不使用动态绑定。要触发动态绑定需要满足两个条件:(1)只有指定为虚函数的成员函数才能进行动态绑定,成员函...

2018-03-27 19:31:22

阅读数:27

评论数:0

《Effective C++》条款07:为多态基类声明virtual析构函数

   class Base_A { public: Base_A():element(0) {} ~Base_A() { cout << "调用A的析构函数" << e...

2018-03-26 11:41:51

阅读数:24

评论数:0

《Effective C++》 条款33:避免遮掩继承而来的名称

    派生类继承基类后会拥有基类的成员变量和成员函数,如果派生类中有和基类相同名称的成员函数和成员变量,那么派生类中相同名称的成员函数会把继承而来的成员函数“遮盖”掉。下面给出实例来进行分析。class Base_A { public: Base_A():element(0) {} virt...

2018-03-25 10:37:03

阅读数:39

评论数:0

C++基础——虚继承及其内存分布

 1、虚继承在C++继承中会遇到一种特殊的情况——“钻石继承”。“钻石继承”指的是当一个基类A被两个派生类B和C同时继承,此时另一个派生类D又同时继承B和C,如果此时用图表示出来就像一个菱形一样,如下图。    派生类D通过继承之后拥有基类A和派生类B,C的成员,所以一旦派生类D想要调用基类A的成...

2018-03-23 16:12:57

阅读数:153

评论数:0

C++基础——继承

1、公有、私有和受保护继承    如果一个类的成员被定义成该类的私有成员,那么只有基类的成员和友元可以访问类中的私有成员。同时派生类也无法访问基类的私有成员,派生类的实例对象也无法访问这些私有成员。如果派生类为公有继承,基类成员保持自己的访问级别:基类的public成员为派生类的public成员,...

2018-03-19 08:53:03

阅读数:39

评论数:0

C++基础——友元函数

    在C++中为了有更好的封装性,所以我们一般将数据声明为私有成员(private)。当我们需要操作数据成员的时候就需要利用类内的函数来使用私有的数据成员。而我们在实现函数定义时是在类外进行函数定义的。而只有类内的函数才可以访问类中的数据成员,函数通常声明为共有成员。但是还有另一种方法:将函数...

2018-03-17 16:11:40

阅读数:76

评论数:0

MySQL之增、删、查、改

DDL语句(数据库和数据库对象的创建、修改和删除基本都是通过DDL语句来实现的)1.1 create 数据库create database +数据库名字[库选项];e.g:create database SchoolDB;库选项:用来约束数据库 (1)字符集设定:charset/characte...

2018-03-15 21:23:50

阅读数:162

评论数:0

《Effective STL》 05 区间成员函数优先于与之对应的单元素成员函数

讨论:给定v1和v2两个矢量(vector),使v1的内容和v2的后半部分相同的最简单操作如何实现?    方案1:v1.assign(v2.begin()+v2.size()/2,v2.end());    方案2:v1.clear();   copy(v2.begin()+v2.size()/...

2018-03-14 16:38:55

阅读数:33

评论数:0

《Effective STL》 03 确保容器中的对象拷贝正确而高效

    当你通过insert或者push_back之类的操作将对象加入到容器中,事实上存进容器中的是你所指定的对象的拷贝。当通过front等操作后,取出来的对象也是所制定的对象的拷贝而已。存放进容器的对象越多耗费的时间就越多。同时还存在“剥离”的情况存在,例如:当创建一个存放基类对象的容器,却向容...

2018-03-14 00:28:54

阅读数:39

评论数:0

《Effective STL》 01:慎重选择容器类型

    vector是默认应使用的序列类型;当需要频繁地在序列中做插入和删除操作时,应该使用list;当大多数插入和删除操作发生在序列的头部和尾部时,deque是应考虑的数据结构。在STL的容器里面可以大致分为两类:连续内存容器和基于结点的容器。连续内存容器是指容器内存放的元素是在一块或多块内存中...

2018-03-13 23:30:31

阅读数:38

评论数:0

算法——冒泡排序算法

    1、冒泡排序的思想    冒泡排序的思想很简单,就是相邻的两个元素进行比较,如果下标较小的元素大于下标较大的元素,交换两个元素的位置。直到最后没有反序位置。所以自然而然会想到可以使用for循环来遍历整个数组的元素来进行比较(相邻的两个元素比较)。那么代码就可以这么写:for(int i=0...

2018-03-13 00:20:04

阅读数:24

评论数:0

进程与线程之生产者和消费者问题

    在学习进程和线程的过程中,毫无疑问肯定会学到多线程、进程间通信等相关问题。而这也是学习进程和多线程方面的一个重点。这篇文章主要介绍的是利用互斥量、锁以及使用Pthread库来实现生产者和消费者问题。1、临界区    临界区指的是共享内存进行访问的程序片段。在实现线程间同步就必须只有一个线程...

2018-03-09 16:40:39

阅读数:142

评论数:0

Leetcode 20. Valid Parentheses

Given a string containing just the characters '(', ')', '{', '}', '[' and ']', determine if the input string is valid.The brackets must close in the ...

2018-03-08 20:50:31

阅读数:22

评论数:0

C++类中的static成员函数和static数据成员

1、static数据成员的使用1.1 static数据成员的定义static数据成员可以声明为任意类型,可以是常量、引用、数组、类类型。static数据成员在类内声明,但是必须在类定义体的外部定义,也就是必须在类外进行定义。在使用类内的static成员时,和其他的成员变量的使用方法相同。class...

2018-03-08 17:55:44

阅读数:142

评论数:0

《现代操作系统》 进程与线程(2)

第二章  进程与线程2.2  线程    多线程的优点主要是以下三个:1)多线程具有并行实体共享用一个地址空间和所有可用数据的能力。2)线程比进程更轻量级,所以它们比进程更容易创建,也更容易撤销。3)当涉及大量的计算和I/O处理时,拥有多个线程允许这些活动可以同时进行。在网络服务器中多线程发挥着重...

2018-03-06 23:15:17

阅读数:30

评论数:0

《现代操作系统》之 进程与线程

第二章  进程与线程2.1进程    操作系统中最核心的概念是进程,它是对正在运行程序的一个抽象,包括操作系统。一个进程就是一个正在执行程序的实例,包括程序计数器、寄存器和变量的当前值。下图中有四个进程,但是只有一个物理程序计数器。在执行其中某个程序时,例如执行A进程,此时进程A的逻辑程序计数器就...

2018-03-05 23:43:56

阅读数:24

评论数:0

《CEffective C++》之条款01

    经过40多年的发展C++已经是个多重范型编程语言,一个同时支持过程式、面向对象形式、函数形式、泛型形式、元编程形式的语言。C++在不断的发展,所以在学习的过程中需要用新的思想和角度来看待C++。而“最简单的方法是将C++视为一个由相关语言组成的联邦而非单一的语言”,当时第一眼看到这句话的时...

2018-03-04 23:52:29

阅读数:19

评论数:0

二叉树的遍历

1、前序遍历上一篇文章讲到二叉树的存储结构,这里使用的就是该存储结构。前序遍历的规则是:若二叉树为空,则空操作返回,否则就先访问根节点,然后前序遍历左子树,再前序遍历右子树。那么前序遍历的结果是:ABDGHCEIF。前序遍历的代码分析:下面的代码使用递归算法进行前序遍历的。先访问根结点,若根结点不...

2018-02-25 15:48:29

阅读数:34

评论数:0

二叉树

1、二叉树的特点每个结点最多两棵子树,所以二叉树中不存在大于2的结点。注意不是只有两棵子树,而是最多有。左子树和右子树是有顺序的,次序不能任意颠倒。即使树中某种结点只有一棵子树,也要区分它是左子树和右子树,如下图。                                     2、二叉树...

2018-02-23 22:16:19

阅读数:54

评论数:0

链栈

链栈和顺序栈不同,链栈是采用一个个存储结点来存储数据的。它不像顺序栈在地址上是连续的线性存储结构。所有的存储单元可以占用连续或不连续的存储区域。每个存储单元在存储栈中的元素a1的同时,也存储其逻辑后继a2的存储地址。typedef struct node { int data;//存放数据 s...

2018-02-03 21:25:43

阅读数:77

评论数:0

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