
C/C++
文章平均质量分 67
jemmy
这个作者很懒,什么都没留下…
展开
-
Boost源码剖析:泛型函数指针类boost::function(修订版)
此帖为转载前奏 如你所知,Boost库是个特性完备,且具备工业强度的库,众多C++权威的参与使其达到了登峰造极的程度。尤其泛型的强大威力在其中被发挥得淋漓尽致,令人瞠目结舌。 然而弱水三千,我们只取一瓢饮。下面,我试图从最单纯的世界开始,一步一步带领你进入源码的世界,去探究boost::function(下文简称function)内部的精微结构。 通常转载 2005-07-22 10:48:00 · 1156 阅读 · 0 评论 -
C++批评系列
C++批评系列(C++?? A Critique of C++ and Programming and Language Trends of the 1990s)要想彻底的掌握一种语言,不但需要知道它的长处有哪些,而且需要知道它的不足之处又有哪些。这样我们才能用好这门语言,避免踏入语言中的一些陷阱,更好地利用这门语言来为我们的工作所服务。Ian Joyner的这篇文章以及他所著的Objects原创 2005-10-13 22:29:00 · 1314 阅读 · 0 评论 -
Debug和Release有什么区别
1。Debug和Release有什么区别,为什么要使用Release版本! 2。怎么把Debug转成Release 转载: Debug版本包括调试信息,所以要比Release版本大很多(可能大数百K至数M)。至于是否需要DLL支持,主要看你采用的编译选项。如果是基于ATL的,则Debug和Release版本对DLL的要求差不多。如果采用的编译选项为使用MFC动态库,则需要MFC42D.D原创 2005-11-06 19:00:00 · 1052 阅读 · 0 评论 -
Big Endian 和 Little Endian (1)
谈到字节序的问题,必然牵涉到两大CPU派系。那就是Motorola的PowerPC系列CPU和Intel的x86系列CPU。PowerPC系列采用big endian方式存储数据,而x86系列则采用little endian方式存储数据。那么究竟什么是big endian,什么又是little endian呢? 其实big endian是指低地址存放最高有效字节(MSB),而li原创 2005-11-29 00:14:00 · 2522 阅读 · 3 评论 -
C++ is a general purpose programming language with a bias towards systems programming
C++ is a general purpose programming language with a bias towards systems programming that is a better C supports data abstraction supports object-oriented programming supports generic programming.原创 2005-12-06 14:49:00 · 1527 阅读 · 0 评论 -
volatile和__volatile__是什么意思?
volatile和__volatile__是什么意思? a. volatile是C语言定义的关键字,gcc为了需要又定义了__volatile__,它和 volatile表达的是同一意思。 b. volatile的本意是"易变的",由于访问寄存器的速度快于访存,所以编译器一般 都会作优化以减少访存。如果变量加上volatile修饰,则编译器就不会对此变量 的读写操作进行优化,即不通过寄存器缓冲而原创 2006-02-21 23:14:00 · 2265 阅读 · 0 评论 -
c语言struct的一种初始化方法
typedef struct str{ int a; int b;}Str;int main(){ Str s={a:1,b:2};//注意这里的冒号 printf("a=%d/nb=%d/n",s.a,s.b);}原文是在linux内核2.4.18的linux/fs/ext2/super.c文件里的,如下:static struct super_operations ex原创 2006-02-21 23:23:00 · 5665 阅读 · 1 评论 -
C++中接口与实现分离的技术
在用C++写要导出类的库时,我们经常只想暴露接口,而隐藏类的实现细节。也就是说我们提供的头文件里只提供要暴露的公共成员函数的声明,类的其他所有信息都不会在这个头文件里面显示出来。这个时候就要用到接口与实现分离的技术。 下面用一个最简单的例子来说明。 类ClxExp是我们要导出的类,其中有一个私有成员变量是ClxTest类的对象,各个文件内容如下: lxTest.h文件内容: class ClxTe转载 2006-03-03 00:00:00 · 976 阅读 · 0 评论 -
C/C++语言中指向函数的指针
“在C语言中,函数本身不是变量,但可以定义指向函数的指针,这种指针可以被赋值、存放于数组之中,传递给函数及作为函数的返回值等” --《The C Programming Language Second Edition》 下面给出几个简单的例子来说明指向函数的指针。 第一个例子说明指向函数的指针如何说明、赋值、调用。 #include #define TESTDATE 100 int func(i原创 2006-07-20 18:38:00 · 1034 阅读 · 0 评论 -
c++中的explicit关键字
c++中的explicit关键字用来修饰类的构造函数,表明该构造函数是显式的,既然有"显式"那么必然就有"隐式",那么什么是显示而什么又是隐式的呢?如果c++类的构造函数有一个参数,那么在编译的时候就会有一个缺省的转换操作:将该构造函数对应数据类型的数据转换为该类对象,如下原创 2007-07-12 09:43:00 · 880 阅读 · 0 评论 -
C语言文件操作
C语言文件操作一、标准文件的读写 1.文件的打开fopen() 文件的打开操作表示将给用户指定的文件在内存分配一个FILE结构区,并将该结构的指针返回给用户程序,以后用户程序就可用此FILE指针来实现对指定文件的存取操作了。当使用打开函数时,必须给出文件名、文件操作方式(读、写或读写),如果该文件名不存在,就意味着建立(只对写文件而言,对读文件则出错),并将文件指针指原创 2007-07-28 16:29:00 · 4684 阅读 · 0 评论 -
怎样在内存缓冲中画图
关键字 内存缓冲,画图原作者姓名 相生昌 介绍用双缓冲进行绘图可解决在VC中绘图时的闪烁现象 正文用vc做程序,如何画图是一个大家都很关心,但是却感到很难以理解的问题,因为在mfc的封装之下,没有现成的画图函数供你直接调用,像vb等等里面直接来个point之类的,常常让人感到无从下手。这两天帮人解决了一个用内存缓冲画图的问题,顺便也就谈谈这些东西,也算是总结。我先来解释一下在mfc转载 2007-06-18 22:21:00 · 2414 阅读 · 0 评论 -
c++工厂模式
c++工厂模式 转载:wpf2006的博客 1、 传授设计模式中存在的问题我个人最近对设计模式中的工厂模式进行了比较深入的学习,通过学习感悟出现在很多设计模式传道者,在讲述设计模式的过程中存在一些问题,使得设计模式变得很难理解。设计模式本身很抽象,但是这些传道者在讲述的过程中,将一个抽象的东西讲的更抽转载 2007-11-29 10:59:00 · 2075 阅读 · 0 评论 -
静态代码检测工具---PC-lint
静态代码检测工具---PC-lint转载 2008-02-20 16:17:00 · 1502 阅读 · 0 评论 -
一些C++题目
1. Given the following program snippet, what can we conclude about the use of dynamic_cast in C++? C/C++ code#include #include //Someone elses code, e.g. libraryclass IGlyph{public: virtual ~I原创 2008-11-14 09:38:00 · 1588 阅读 · 2 评论 -
[转]计算一个无符整数中1Bit的个数(2)
7合并计数器法的优化优化1:算法的优化:基于以下两点合并计数器法可以进行优化:1) 和的存储空间为 log2 (the number of bits being counted)*(coutern number).随着(coutern number)减少,需要的存储bit减少。但是实际每次都被存储在一个32位整数。2) 在多数原创 2009-07-29 12:48:00 · 1242 阅读 · 0 评论 -
计算一个无符整数中1Bit的个数(1)
Count the number of bits that are on in an unsigned integer(计算一个无符整数中1Bit的个数)-- (1)计算一个无符号整数中有多少的Bit为1原创整理,转载请注明出处。这是一个经常遇到的经典问题,这里分两个部分讲解和总结,首先对讲解现有的算法,然后再讲解一些改进算法。 1.循环法(It转载 2009-07-29 12:45:00 · 2261 阅读 · 0 评论 -
malloc 代码
原创 2005-10-12 23:53:00 · 1007 阅读 · 0 评论 -
重载<<
#include iostream> using namespace std; class Test { public: Test(int age = 0,char *name = "/0") { Test::age = age; strcpy(Test::name,name);原创 2005-10-17 21:31:00 · 962 阅读 · 0 评论 -
C++箴言:接口继承和实现继承
现在,假设 XYZ 公司的财富增长了,决定引进一种新机型,Model C。Model C 在某些方面与 Model A 和 Model B 不同。特别是,它的飞行不同。 XYZ 公司的程序员在 hierarchy(继承体系)中增加了 Model C 的 class,但是由于他们匆匆忙忙地让新的机型投入服务,他们忘记了重定义 fly function: class ModelC: public原创 2005-10-11 13:48:00 · 973 阅读 · 0 评论 -
Using Header Files To Enhance Portability
Using Header Files To Enhance PortabilityRainer Gerhards--------------------------------------------------------------------------------Rainer Gerhards specializes in systems programming and has a str原创 2005-08-13 12:09:00 · 1114 阅读 · 0 评论 -
缺省实参
缺省实参缺省实参是一种虽然并不普遍但在多数情况下仍然适用的实参值缺省实参使程序员从函数接口的每个小细节中解脱出来函数可以用参数表中的初始化语法为一个或多个参数指定缺省实参例如假设一个函数创建并初始化一个二维字符数组以便模拟终端显示器则我们可以为屏幕的高宽和背景字符提供缺省实参char *screenInit( int height = 24, int width = 80,char backgr原创 2005-08-16 14:52:00 · 1675 阅读 · 0 评论 -
Template Method / Visitor
侯捷注:本文承译者孟岩先生应允,转载於此以飨台湾读者,非常感谢。未得孟岩先生之同意,任何人请勿将此文再做转载。以下红色为译注,紫色为侯捷个人认为宜再斟酌之处。浅蓝色是侯捷个人阅读时的神秘标记。本文系由GB简码直接转为BIG5繁码,并未将大陆惯用术语转换为台湾惯用术语。由於字码直接转译,也许有些字在简体中是正确的,转为繁体後音同字异,或字同义异,或┅。某些紫色标记也许是这麽来的 :)读後感想:本文原创 2005-08-19 09:54:00 · 971 阅读 · 0 评论 -
Learning Standard C++ as a New Language
C/C++ Users Journal May,1999Learning Standard C++ as a New Languageby Bjarne Stroustrup導入想要獲得標準 C++ [參考資料 1] 的最大優點,我們必須重新思考 C++ 程式的撰寫方式。重新思考的方式之一就是,想想 C++ 應該如何學習(和教育)。我們應該強調什麼樣的編程技術?我們應該先學習這個語言的哪一原创 2005-08-25 10:08:00 · 1976 阅读 · 0 评论 -
c++
COSC346 – C++ Primer Lecture41C++ Primer• Almost a superset of C• Is not fully objectorientedas proceduralprograms are still possible• Is therefore a multiparadigmlanguage (both OOand procedural)• Rev原创 2005-08-19 17:38:00 · 878 阅读 · 0 评论 -
Bjarne Stroustrup的C++风格和技术
Bjarne Stroustrup的C++风格和技术Q1: 这个简单的程序我该怎么写?Q2: 为何我编译一个程序要花那么多时间?Q3: 为何空类的大小不是零?Q4: 为什么我必须把数据放到类的声明之中?Q5: 为何成员函数不是默认为虚?Q6: 为何析构函数不是默认为虚?Q7: C++中为何没有虚拟构造函数?Q8: 为何无法在派生类中重载?Q9: 我能从构造函数调用虚函数吗?Q10: 有"place原创 2005-08-25 10:45:00 · 1711 阅读 · 0 评论 -
函数对象的函数适配器
函数对象的函数适配器标准库还提供了一组函数适配器用来特殊化或者扩展一元和二元函数对象适配器是一种特殊的类它被分成下面两类1 绑定器binder binder 通过把二元函数对象的一个实参绑定到一个特殊的值上将其转换成一元函数对象例如为了计数一个容器中小于或等于10 的元素的个数我们可能会向count_if()传递一个less_equal 函数对象以及一个被绑定为10 的实参在下一节中我们将了解怎样原创 2005-08-27 00:46:00 · 1058 阅读 · 0 评论 -
C++基础(还没看)
C++基本功:全面掌握const、volatile和mutable关键字 C++程式设计过程中,const的使用可以频度是非常高的.它在保证程式安全方面起到了不可估量的作用.用一句话来表达最确切不过了:”小兵立大功”. 有了const,那么mutable当然缺不了. 然作为const的同胞兄弟,volatile却在很多人的视野中消失.其实volatile担负的责任有何尝小呢?原创 2005-09-01 22:41:00 · 974 阅读 · 0 评论 -
摩托罗拉笔试题
摩托罗拉笔试题 1、What are the two operating mode of X86, and how do they work? 2、class a{}; class b:virtual public a{}; class c:virtual public a{}; class d:public b,public c{} i原创 2005-09-04 12:56:00 · 1390 阅读 · 1 评论 -
VC 使用DLL
1、静态链接使用该方法,必须制定要链接的lib文件。和接口说明的*.h文件2、动态链接该方法用LoadLibrary载入dll,并且使用GetProcAddress得到dll中允许应用程序调用的函数的地址在最后还要释放该dll:FreeLibraryDllHmodule = LoadLibrary("H://MyVC//your.dll"); if( !DllHmodule ) { AfxMes原创 2005-09-07 13:16:00 · 3081 阅读 · 0 评论 -
论C++构造函数中的不合理设计
论C++构造函数中的不合理设计作者:张岩 在C++中,构造函数是一个在构件对象的时候调用的特殊的函数,其目的是对对象进行初始化的工作,从而使对象被使用之前可以处于一种合理的状态。但是,构造函数的设计并不完美,甚至有些不合理的特性。比如说,限定构造函数名称与类的名称相同的条件。这些特性在构造C++编译器的时候是值得引起注意的。还有,在今后C++的标准修订或者制定其他面向对象的设计语言时候应当避原创 2005-09-17 10:43:00 · 975 阅读 · 0 评论 -
malloc
#include #include #include #include #include #include #ifndef _POSIX_#include _PNH _pnhHeap = NULL; /* pointer to new() handler */#endif#ifdef MTHREADvoid * _CALLTYPE1 malloc ( size_t size ){ void *pr原创 2005-09-14 22:02:00 · 1001 阅读 · 0 评论 -
接口和抽象类的区别
抽象類:a.包含一個或多個抽象方法或屬性的類必須定義為抽象類 b.繼承抽象類的派生類必須實現抽象類的所有抽象方法或 屬性,否則該派生類也必是抽象類,至到完全實現為止. c.抽象類必須是公共的(public). d.抽象類不存在對象實例,但可以申明引用變量.另外抽象類 中可以有非抽象方法,供派生類調用.接口:原创 2005-10-08 13:14:00 · 867 阅读 · 0 评论 -
Developpeur Reference对Bjarne Stroustrup的采访
Developpeur Reference对Bjarne Stroustrup的采访荣耀 译1.C++的ANSI/ISO标准化过程时间很长,直到1998年才完成。对于没能在更短的时间内完成该项工作,您感到遗憾吗?您认为这减缓了C++的“渗透”吗(举个例子,在教育领域,许多人继续教授C语言,并声称C++还没有被标准化,这种境况真让人恼火)? 您认为这减缓了C++的进化了吗(标准库的更好的进化,对分布原创 2005-10-13 22:32:00 · 1209 阅读 · 0 评论 -
C++ 完全不完全资源导引
1.快速入门 〈Accelerated.C++〉2000 〈Essential C++〉2002 Lipman 两本都是开篇就讲C++/STL,绝口不提C,而且都有中文版。2.枕头参考 〈C++.Primer.4th〉2005 Lippman,第3版有中文版,当入门书看也无不可。 〈The.C++.Programming.Language.3rd〉Bjarne Stroust原创 2005-10-17 16:49:00 · 916 阅读 · 0 评论 -
点、线、面相关的算法
* 需要包含的头文件 */ #i nclude /* 常用的常量定义 */ const double INF = 1E200 const double EP = 1E-10 const int MAXV = 300 const double PI = 3.14159265 /* 基本几何结构 */ struct POINT { double x; double y; POINT(doubl原创 2005-10-22 15:45:00 · 4163 阅读 · 0 评论 -
Debug
Debug 启动 Debug,它是可用于测试和调试 MS-DOS 可执行文件的程序。 Debug [[drive:][path] filename [parameters]] 参数 [drive:][path] filename 指定要测试的可执行文件的位置和名称。 parameters 指定要测试的可执行文件所需要的任何命令行信息。 ++ 说明 使用转载 2009-06-26 10:30:00 · 965 阅读 · 0 评论