- 博客(12)
- 资源 (1)
- 收藏
- 关注
原创 条款2:尽量以const、enum、inline替换#define
**1.对于单纯常量,最好以const对象或者enums替换#define; 2.对于形似函数的宏,最好改用inline函数替换#define;** 这句话或许可以改为:“宁可以编译器代替预编译器”,因为#define不被视为语言的一部分,例如#define ASPECT_RATIO 1.656 定义了记号名称从未被编译器看见,有可能没进入记号表中,于是当运用此常量并且带来错误时无法定位到该记号
2016-09-15 19:02:22
363
原创 欢迎使用CSDN-markdown编辑器
**一开始C++只是C+class,逐渐成熟后变得更加活跃和无拘无束,开始接受不同与C+class 的各种理念,比如Exception-对函数结构化带来的不同做法,template-将我们带到新的思考方式,STL则定义了一个前所未有的伸展性做法; 现在的C++语言是个多重范型编程语言,同时支持过程形式、面向对象形式、函数式、泛型、元编程,这种包容性和多样性使得C++ 非常厉害,但是也可能引
2016-09-15 15:45:01
290
原创 条款1:视C++为一个语言联邦
一开始C++只是C+class,逐渐成熟后变得更加活跃和无拘无束,开始接受不同与C+class的各种理念,比如Exception-对函数结构化带来的不同做法,template-将我们带到新的思考方式,STL则定义了一个前所未有的伸展性做法;现在的C++语言是个多重范型编程语言,同时支持过程形式、面向对象形式、函数式、泛型、元编程,这种包容性和多样性使得C++非常厉害,但是也可能引发某些
2016-09-15 15:43:17
343
原创 线程与进程
1. 线程的基本概念、线程的基本状态及状态之间的关系?答:定义:线程,有时称为轻量级进程,是CPU使用的基本单位;由线程ID、程序计数器、寄存器集合和堆栈组成。属于同一进程的其他线程共享其代码段、数据段和其他操作系统资源。 与进程的关系:是进程的执行控制单元,执行路径;一个进程至少有一个线程负责控制程序执行;一个进程如果只有一个线程,这个程序称为单线程;一个进程如果只有多个线程,这个程序
2016-09-07 14:14:02
370
转载 虚函数表解析
前言 C++中的虚函数的作用主要是实现了多态的机制。关于多态,简而言之就是用父类型别的指针指向其子类的实例,然后通过父类的指针调用实际子类的成员函数。这种技术可以让父类的指针有“多种形态”,这是一种泛型技术。所谓泛型技术,说白了就是试图使用不变的代码来实现可变的算法。比如:模板技术,RTTI技术,虚函数技术,要么是试图做到在编译时决议,要么试图做到运行时决议。 关于虚函数的使
2016-07-31 10:56:28
297
转载 C++中delete和delete[]的区别
一直对C++中的delete和delete[]的区别不甚了解,今天遇到了,上网查了一下,得出了结论。做个备份,以免丢失。 C++告诉我们在回收用 new 分配的单个对象的内存空间的时候用 delete,回收用 new[] 分配的一组对象的内存空间的时候用 delete[]。 关于 new[] 和 delete[],其中又分为两种情况:(1) 为基本数据类型分配和回收空间;(2
2016-07-31 10:45:57
310
原创 多态实现线性表(队列,串,堆栈),要求具备线性表的基本操作
代码如下:#include using namespace std;templatestruct tcontainer{ virtual void push(const t&) = 0; virtual void pop() = 0; virtual const t&begin() = 0; virtual const t&end() = 0; virtual size_t
2016-07-27 14:03:20
632
原创 工厂三兄弟之简单工厂模式
1.简述工厂模式是最常用的一类创建型设计模式,通常我们所说的工厂模式是指工厂方法模式,它也是使用频率最高的工厂模式。本章将要学习的简单工厂模式是工厂方法模式的“小弟”,它不属于GoF 23种设计模式,但在软件开发中应用也较为频繁,通常将它作为学习其他工厂模式的入门。此外,工厂方法模式还有一位“大哥”——抽象工厂模式。这三种工厂模式各具特色,难度也逐个加大,在软件开发中它们都得到了广泛的应用,成为面向
2016-07-12 14:48:01
500
原创 华为OJ做题记录(包含题目和ac代码)
1.题目说明 蛇形矩阵是由1开始的自然数依次排列成的一个矩阵上三角形。 样例输入 5 样例输出 1 3 6 10 15 2 5 9 14 4 8 13 7 12 11 接口说明 原型 void GetResult(int Num, char * pResult); 输入参数: int Num:输入的正整数N 输出参数: int * pR
2016-05-19 10:28:18
2417
原创 第三章 表,栈和队列
3.4 Vector容器的C++实现#include#include#includeusing namespace std;templateclass Vector{public: explicit Vector(int initSize=0) :theSize(initSize),theCapacity(initSize+SPARE_CAPACITY) { objec
2016-04-25 20:05:26
303
原创 第2章 算法分析
2.4.3最大子序列和问题的解#include#include#include#includeusing namespace std;//求最大子序列和算法/* 二分查找法,复杂度nlogn*/int maxSumRec(const vector&a,int left,int right){ if (left==right) { if (a[left]>0) {
2016-04-20 20:51:17
345
原创 多媒体定时器 C的实现
// Media Timer.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include #include #include #pragma comment(lib, "winmm.lib")#define ONE_MILLI_SECOND 10 // 定义1ms和2s时钟间隔, 以ms为单位 ;#define TWO_SECOND 200
2016-01-19 15:41:44
752
TeeChart
2015-08-07
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人