快捷搜索:  
C++  中的Singleton  类的实现

C++ 中的Singleton 类的实现

《设计模式》中把 Singleton 写成返回指针: class Singleton{ public: static Singleton* Instance(); protected: Singleton(); private: static Singleton* _instance; }; 相应的实现 cpp 文件是: Singleton* Singleton::_instance; Singleton* Singleton::Instance(){ if( _instance == 0){ _ins...

C++语法之函数重载

C++语法之函数重载

所谓函数重载是指同一个函数名可以对应着多个函数的实现。例如,可以给函数名add()定义多个函数实现,该函数的功能是求和,即求两个操作数的和。其中,一个函数实现是求两个int型数之和,另一个实现是求两个浮点型数之和,再一个实现是求两个复数的和。每种实现对应着一个函数体,这些函数的名字相同,但是函数的参数的类型不同。这就是函数重载的概念。函数重载在类和对象的应用尤其重要。 函数重载要求编译器能够唯一地确定调用一个函数时应执行哪个函数代码,即采用哪个函数实现。确定函数实现时,要求从函数参数的个数和类型上来区分...

C++实现精确度要求高的定时操作代码

C++实现精确度要求高的定时操作代码

在C++编程中,对于精确度要求更高的定时操作,应该使用QueryPerformanceFrequency()和 QueryPerformanceCounter()函数。这两个函数是仅供Windows 95及其后续版本使用的精确时间函数,并要求计算机从硬件上支持精确定时器。 示例: #include iostream #include windows.h using namespace std; void Test()//测试程序 { for(int i=0; i1000; i++) { for(int...

C++中优化BOOL  变量的声明

C++中优化BOOL 变量的声明

通常我们会这样声明BOOL 变量: class CMyClass { ... BOOL m_bVar1; BOOL m_bVar2; BOOL m_bVar3; BOOL m_bVar4; BOOL m_bVar5; BOOL m_bVar6; BOOL m_bVar7; BOOL m_bVar8; ... }; 考虑到BOOL 变量在Win32 下其实是一个int ,占4个字节,那么上面8个BOOL变量就会占去 32个字节。 typedef int BOOL; // BOOL takes 4 byte...

public,private,protected  作用

public,private,protected 作用

公有成员public member 在程序的任何地方都可以被访问实行信息隐藏的类将其public 成员限制在成员函数上这种函数定义了可以被一般程序用来操纵该类类型对象的操作 私有成员private member 只能被成员函数和类的友元访问实行信息隐藏的类把其数据成员声明为private 被保护成员protected member 对派生类derived class 就像 public 成员一样对其他程序则表现得像private 在类的private:节中声明的成员(无论数据成员或是成员函数)仅仅能被类...

读书笔记10:令operator=返回一个引用指向*this

读书笔记10:令operator=返回一个引用指向*this

《Effective C++》读书笔记10:令operator=返回一个引用指向*this 一般的连锁赋值方式: int x, y, z; x = y = z = 15...

读书笔记01:视c++为一个语言联邦

读书笔记01:视c++为一个语言联邦

都说c++难学。确实,这是由于c++过于庞大了,Meyers将庞大的c++分成了四个部分: 1.c语言; 2.经典的面向对象c++:包括了class...

C++的救赎  C++开源程序库评话

C++的救赎 C++开源程序库评话

c语言天生就与开放结缘。c最初是作为unix的系统编程语言而流行起来的,而unix可以被认为是第一个产生重大影响的“开源”软件。随着unix的流行,c语言逐渐被人们认识和喜爱。很快的,在各个平台上c语言都成为了流行的甚至是统治性的程序设计语言。 大约到1980年代中期,c已经成为人类历史上第一种工业级程序设计世界语。很多人都知道,正是c这样一种世界语的出现,才使开源运动的出现和最初发展成为可能,从这个意义上讲,说c语言是开源运动之母并不十分过分。但人们不太能够认识到的是,事实上c语言统治地位的获得,却也...

写出漂亮代码的七种方法

写出漂亮代码的七种方法

首先我想说明我本文阐述的是纯粹从美学的角度来写出代码,而非技术、逻辑等。以下为写出漂亮代码的七种方法: 1.尽快结束 if 语句 例如下面这个JavaScript语句,看起来就很恐怖: function findShape(flags, point, attribute, list) { if(!findShapePoints(flags, point, attribute)) { if(!doFindShapePoints(flags, point, attribute)) { if(!findInS...

C++中extern  “C”含义深层探索

C++中extern “C”含义深层探索

1.引言 C++语言的创建初衷是“a better C”,但是这并不意味着C++中类似C语言的全局变量和函数所采用的编译和连接方式与C语言完全相同。作为一种欲与C兼容的语言,C++保留了一部分过程式语言的特点(被世人称为“不彻底地面向对象”),因而它可以定义不属于任何类的全局变量和函数。但是,C++毕竟是一种面向对象的程序设计语言,为了支持函数的重载,C++对全局函数的处理方式与C有明显的不同。 2.从标准头文件说起 某企业曾经给出如下的一道面试题: 面试题为什么标准头文件都有类似以下的结构? #ifn...

基础入门:回调函数之C++版

基础入门:回调函数之C++版

回调函数这个东西使用得比较多,其实所谓的回调函数就是函数指针,但在面向对象编程中,往往我们会使用他们达到很巧的目的,比如说类的封装中;或者用得更多的是实现动态绑定;呵呵这不是C++中传说的多态吗, 先来个简单的介绍函数指针: Copy code #includeiostream typedef int(*callback)(int); using namespace std; class X { protected: int xx; public: X() { xx=11;// hh=22; } sta...

C/C++字符串处理(3):String  ADT

C/C++字符串处理(3):String ADT

String ADT - 字符串只是抽象数据类型 概要 字符串是什么?我们认为,与其说它是一个类,不如说它只是一个ADT(抽象数据类型)。 目前C++中的字符串类 目前广泛采用的C++字符串类有二:std::string(basic_string,由STL提供)、CString(由MFC或者WTL提供)。它们的实现非常类似,都是带引用计数的、基于线性数据结构的字符串。不过SGI STL的Rope打破了这个规矩。它采用了一种基于树结构的组织方式来实现字符串。 如何理解字符串只是ADT? 我们知道,基于值的...