C++
文章平均质量分 86
iteye_5962
这个作者很懒,什么都没留下…
展开
-
有效创建一个类(一)
最近由于工作的需要,让我重拾C++编程语言;重温了Bjarne Stroustrup的大作《The C++ Programming Language》,仍然还有很多东西不是十分明白,但还是希望能够把所学的经验总结下来。虽然这本书不适合C++语言初学者,但是书中的很多细节都能让一个有经验的程序开发人员获益匪浅。其中关于本书的第二部分“抽象机制”(Abstraction Mechanisms)...原创 2010-12-03 14:12:55 · 112 阅读 · 0 评论 -
有效创建一个类(二)
上一篇记录了在创建一个类时,首先要考虑这个类的构造函数、拷贝构造函数、拷贝赋值操作、以及析构函数的声明及定义;那么本篇主要说明的是有关类成员的声明及定义;有关类成员声明的工作实际上大多数时候都是在决定类构造函数、拷贝函数及析构函数之前需要考虑的。那么为什么我要把构造函数等作为创建类考虑的第一个因素呢?因为在大多数软件设计的情况下,无论这个软件是一个大型的应用程序还是其中的微小组件,都是先进行概要设...原创 2010-12-08 07:47:46 · 153 阅读 · 0 评论 -
有效创建一个类(三)
4. 类成员函数(改变第2种的)设计类改变成员变量的成员函数,需要考虑的因素非常多,但是这些因素大致可以分为两类:一类是比较通用的,另一类呢就是有类体系的前提;(1)是否真需要成为成员函数(2)是否有必要返回对象?如果有必要返回对象,那么不要返回其引用(3)函数参数宁以pass-by-reference-to-const传递替换pass-by-value(4)是否需要提供一...2010-12-23 13:54:13 · 115 阅读 · 0 评论 -
有效创建一个类(四)
在前三篇中我说明了有效创建一个类的前4个考虑步骤,现在就差最后一步了,考虑创建与类定义有关的异常类。[b]异常的概述[/b]用户调用某个函数,函数可以在运行时检测到错误,但是不知道如何处理;用户呢,实际上知道在遇到这种错误时,该如何处理;为了解决这类问题,提出了异常的概念。异常的基本思想是:当函数检测到自己无法处理的错误时抛出一个异常,以便调用者(用户)能够处理这个异常。用户如果希...2010-12-23 17:07:24 · 108 阅读 · 0 评论 -
Function Templates
一、定义 Function Template template <typename T>inline const T& max(const T& a, const T& b){ return a<b ? a : b;} 二、参数推导当使用某一类型的参数调用max()时,模板参数(template pa...原创 2011-10-25 16:09:10 · 120 阅读 · 0 评论 -
Class Templates
一、class template定义#include <vector>#include <stdexcept>template <typename T>class Stack { private: std::vector elems; public: void push(const T&amp;); ...原创 2011-10-25 17:45:20 · 139 阅读 · 0 评论 -
Templates使用技巧基础
模板使用技巧基础这篇文章主要记下实际工程中使用模板的一些基本技巧,其中主要包括typename关键字的使用,定义模板成员函数,定义嵌套类模板,双重模板类型参数(template template parameter),以及零值初始化的技巧。 一、关键字typename关键字typename是C++标准化过程中被引入的,目的是告诉编译器模板类型参数或者其内的某个标识符是个类型。t...原创 2012-05-01 22:10:33 · 304 阅读 · 0 评论 -
定单簿的一种实现
定单簿(Order Book) 的一种实现定单簿的简单业务背景介绍 最近笔者需要根据业务需要实现一个“快速”的定单簿,首先在此啰嗦一下什么是“定单簿”和有关“定单簿”的一些简单业务场景描述。我们都知道在股票交易的时候,都会在具体一个股票操作界面的右上角处(很多交易专业人员称之为“盘口”)看到多档价位行情(通常是买5档卖5档),这个“盘口”实际上是定单簿的一定程度的外表反应;顾名思义...原创 2016-02-25 19:59:35 · 353 阅读 · 0 评论 -
探究boost::bind的实现
泛化的bind实用性很强,支持将泛化函数(函数、函数指针、仿函数、与成员函数)与运行期实参的动态绑定;在实际工程中也经常作为基础工具集之一被频繁地使用;我计划投入一定的精力,仔细阅读boost库中的基础工具集的代码实现(bind是第一个);旨在了解这些工具的内部实现机理同时也提高下自己的C++语言泛型编程技术,以备后续的实际工程中使用; 2005年,Andrei Alexandresc...原创 2015-04-24 11:20:27 · 195 阅读 · 0 评论