JidanIt的专栏

私信 关注
JidanIt
码龄13年
  • 96,515
    被访问量
  • 52
    原创文章
  • 89,170
    作者排名
  • 10
    粉丝数量
  • 于 2008-06-25 加入CSDN
获得成就
  • 获得9次点赞
  • 内容获得13次评论
  • 获得5次收藏
荣誉勋章
TA的专栏
  • C++
    9篇
  • C指针
  • C语言
    6篇
  • EffectiveC++
    1篇
  • Enum应用
  • MFC大杂烩
    15篇
  • STL学习
  • Struct结构体
  • Template泛型
    2篇
  • Typdef应用
    1篇
  • 位运算
  • 内存管理
    3篇
  • 动态创建
    1篇
  • 数据结构
  • 消息机制
    1篇
  • 设计模式
  • 面向对象
  • 最近
  • 文章
  • 资源
  • 问答
  • 课程
  • 帖子
  • 收藏
  • 关注/订阅

C++ Templates (给模板参数命名)

 书中的例子实现手法使用多重/虚拟继承, 实现手法感觉比较诡秘. 但是至少告诉我是可以实现的.于是干脆自己也练了练手,  博君一笑. 只在VC7.1下测试过, VC6也许可能可以迂回实现, 但是估计工作量太大.1. 首先需要一个基本的 If 语句. template struct if_{    typedef T type;};templatestruct if_{    typ
原创
887阅读
0评论
0点赞
发布博客于 13 年前

C++中的模板(templates)

 什么是模板模板是根据参数类型生成函数和类的机制(有时称为“参数决定类型”)。通过使用模板,可以只设计一个类来处理多种类型的数据,而不必为每一种类型分别创建类。       例如,创建一个类型安全函数来返回两个参数中较小的一个,如果不使用Templates,必须要编写一系列如下的函数:// min for intsint min( int a, int b )    return (
原创
884阅读
0评论
0点赞
发布博客于 13 年前

怪异的template用法 学习笔记

  今天在>看到一个奇怪的用法  template   class Shell {     public:       template       class In {         public:           template           class Deep {               public:               virtual void f();   
原创
780阅读
0评论
0点赞
发布博客于 13 年前

C++之模板(Template)

模板是C++提供进行编程的一种类书工具。所以在看本文以前请先了解一下C++类书的概念及相关的知识。1.模板的概念:模办是实现类属机制的一种工具,它的功能非常强,它是无约束类属机制和约束类属机制的集合。 它可以让用户构造模板函数。 模板,对象, 函数之间的关系见下图:   2.函数模板与模板函数:先见下例:#include templateclass T>          
原创
707阅读
0评论
0点赞
发布博客于 13 年前

OnUpdateCmdUI 与 OnCommand 的区别

 一个是WM_INITMENUPOPUP或wm_initmenu产生后由mfc框架调用以便用来控制菜单项的外观的... 一个是点击菜单后产生的..命令更新机制MFC框架结构中,可以用ON_UPDATE_COMMAND_UI( id, memberFxn )宏指定菜单或工具条按钮等对应的状态设置函数在memberFxn中通过传入的CCmdUI对象指针就可以设置菜单项,工具钮的使用、禁用、
原创
3067阅读
1评论
0点赞
发布博客于 13 年前

C语言精典算法

 迷宫:#include enum boolean{FALSE, TRUE};template struct Node{  T val;  Node *next;};template class List{    Node *head;    int size;  public:    List()    {      head = NULL;      size = 0;    }  v
原创
823阅读
0评论
0点赞
发布博客于 13 年前

MFC教程-3

 CObject类 CObject 是大多数MFC类的根类或基类。CObject类有很多有用的特性:对运行时类信息的支持,对动态创建的支持,对串行化的支持,对象诊断输出,等等。 MFC从CObject派生出许多类,具备其中的一个或者多个特性。程序员也可以从CObject类派生出自己的类,利用CObject类的这些特性。本章将讨论MFC如何设计CObject类的这些特性。首先,考察C
原创
1397阅读
0评论
0点赞
发布博客于 13 年前

MFC教程-对象的创建

 MFC对象的创建 前面几章介绍了MFC的核心概念和思想,即介绍了MFC对Windows对象的封装方法和特点;MFC对象的动态创建、序列化;MFC消息映射机制。现在,考查MFC的应用程序结构体系,即以文档-视为核心的编程模式。学习本章,应该弄清楚以下问题:MFC中诸多MFC对象的关系:应用程序对象,文档对象,边框窗口对象,文档边框窗口对象,视对象,文档模板对象等。MFC对象的创
原创
895阅读
0评论
0点赞
发布博客于 13 年前

MFC教程-2

2 WinMain入口函数WinMain流程 现在讨论MFC应用程序如何启动。WinMain 函数是MFC提供的应用程序入口。进入WinMain前,全局应用程序对象已经生成。WinMain流程如图5-3所示。图中,灰色框是对被调用的虚拟函数的注释,程序员可以或必须覆盖它以实现MFC要求的或用户希望的功能;大括号所包含的图示是相应函数流程的细化,有应用程序对象App的初始化、Ru
原创
1602阅读
0评论
0点赞
发布博客于 13 年前

MFC教程-7

 MFC的DLL 一般的,在介绍Windows编程的书中讲述DLL的有关知识较多,而介绍MFC的书则比较少地提到。即使使用MFC来编写动态链接库,对于初步接触DLL 的程序员来说,了解DLL的背景知识是必要的。另外,MFC提供了新的手段来帮助编写DLL程序。所以,本节先简洁的介绍有关概念。DLL的背景知识 静态链接和动态链接 当前链接的目标代码(.obj)如
原创
542阅读
0评论
0点赞
发布博客于 13 年前

MFC教程-6

  应用程序的退出 一个Windows应用程序启动之后,一般是进入消息循环,等待或者处理用户的输入,直到用户关闭应用程序窗口,退出应用程序为止。例如,用户按主窗口的关闭按钮,或者选择执行系统菜单“关闭”,或者从“文件”菜单选择执行“退出”,都会导致主窗口被关闭。当用户从“文件”菜单选择执行“退出”时,将发送MFC标准命令消息ID_APP_EXIT。MFC实现了函数CWinApp
原创
530阅读
0评论
0点赞
发布博客于 13 年前

MFC教程-8

 MFC的进程和线程 Win32的进程和线程概念 进程是一个可执行的程序,由私有虚拟地址空间、代码、数据和其他操作系统资源(如进程创建的文件、管道、同步对象等)组成。一个应用程序可以有一个或多个进程,一个进程可以有一个或多个线程,其中一个是主线程。线程是操作系统分时调度分配CPU时间的基本实体。一个线程可以执行程序的任意部分的代码,即使这部分代码被另一个线程并发地执行;
原创
702阅读
0评论
0点赞
发布博客于 13 年前

MFC教程-9

 MFC的状态 MFC定义了多种状态信息,这里要介绍的是模块状态、进程状态、线程状态。这些状态可以组合在一起,例如MFC句柄映射就是模块和线程局部有效的,属于模块-线程状态的一部分。模块状态 这里模块的含义是:一个可执行的程序或者一个使用MFC DLL的DLL,比如一个OLE控件就是一个模块。一个应用程序的每一个模块都有一个状态,模块状态包括这样一些信息:用来加载资
原创
751阅读
0评论
0点赞
发布博客于 13 年前

MFC教程-11

  MFC下的文件类 文件操作的方法 使用Visual C++编程,有如下方法进行文件操作:(1)使用标准C运行库函数,包括fopen、fclose、fseek等。(2)使用Win16下的文件和目录操作函数,如lopen、lclose、lseek等。不过,在Win32下,这些函数主要是为了和Win16向后兼容。(3)使用Win32下的文件和目录操作函数,如Cre
原创
703阅读
0评论
0点赞
发布博客于 13 年前

MFC教程-12

  对话框和对话框类CDialog 对话框经常被使用,因为对话框可以从模板创建,而对话框模板是可以使用资源编辑器方便地进行编辑的。模式和无模式对话框 对话框分两种类型,模式对话框和无模式对话框。模式对话框 一个模式对话框是一个有系统菜单、标题栏、边线等的弹出式窗口。在创建对话框时指定WS_POPUP, WS_SYSMENU, WS_CAPTION和 DS
原创
907阅读
0评论
0点赞
发布博客于 13 年前

MFC教程-13

 MFC工具条和状态栏 Windows控制窗口 Windows (Windows95或者以上版本) 提供了系列通用控制窗口,其中包括工具条(ToolBar)、状态栏(StatusBar)、工具条提示窗口(ToolTip)。Windows在一个DLL加载时注册个控制窗口的“窗口类”。例如,工具条的“窗口类”是 “ToolbarWindow32”,状态栏的“窗口类”是“ms
原创
1218阅读
0评论
0点赞
发布博客于 13 年前

MFC的模块状态:从AfxGetApp()和AFX_MANAGE_STATE()看MFC的模块状态

 Introduction当我们在用MFC编程的时候,我们经常用到AfxGetApp()来获得当前的CWinApp的Instance。看看MFC的源代码中AfxGetApp()的实现,你会发现AfxGetApp()的实现并不像一般情况下面那样直接:_AFXWIN_INLINE CWinApp* AFXAPI AfxGetApp()         { return afxCurrent
原创
696阅读
0评论
0点赞
发布博客于 13 年前

AFX_MANAGE_STATE(AfxGetStaticModuleState());问题

  写一个MFC规则动态链接库(regularDll.dll),在这个里面写一个函数 extern "C " _declspec(dllexport) void ShowDlg(void) { CMyDlg dlg; dlg.DoModal(); AfxMessageBox( "hello "); } 建立一个基于对话框的应用程序CallDll,添加一个按钮,在OnBtn1(){}里调用
原创
1076阅读
0评论
0点赞
发布博客于 13 年前

(转了多次不知道几转了)在DLL中使用资源(CDialog)

  在DLL中使用资源     现在最常看见的关于DLL的问题就是如何在DLL中使用对话框,这是一个很普遍的关于如何在DLL中使用资源的问题。这里我们从Win32 DLL和MFC DLL两个方面来分析并解决这个问题。 1.Win32 DLL      在Win32 DLL中使用对话框很简单,你只需要在你的DLL中添加对话框资源,而且可以在对话框上面设置你所需要的控件。然后使用DialogB
原创
645阅读
0评论
0点赞
发布博客于 13 年前

如何对webbrowser和IE编程(十)

由Internet Explorer 5激发事件如你所知, Internet Explorer像其他COM对象一样激发事件—通过连接点.但实际上Internet Explorer如何激发事件呢?每次 Internet Explorer需要向客户提供关于当前活动状态的信息, Internet Explorer 激发通过DWebBrowserEvents2 连接点激发一个事件. (之前到版本 4,
原创
962阅读
0评论
0点赞
发布博客于 13 年前

VC进阶----(3)菜单操作代码

 //标记菜单 //GetMenu()->GetSubMenu(0)->CheckMenuItem(2,MF_BYPOSITION |MF_CHECKED);//索引方式 //GetMenu()获得菜单CMenu对象指针, GetMenu()->GetSubMenu(0)->CheckMenuItem(ID_FILE_SAVE,MF_BYCOMMAND |MF_CHECKED);//ID方式
原创
807阅读
0评论
0点赞
发布博客于 13 年前

windows编程总结

 (一)Dialog篇:    CDialog::DoModal();//显示对话框    UpdateData(TRUE);//将数据从控件传递到相应的成员变量    UpdateData(FALSE);//将数据从成员变量传递到相应控件    显示消息框:         int AfxMessageBox(LPCTSTR lpszText,UINT nType=MV_OK,UINT
原创
89阅读
0评论
0点赞
发布博客于 13 年前

关于0xC0000005

 0xC0000005: Access Violation错误调试- - Oh my god,耗费我了几个小时的时间,请教了Zz和Tina后,终于搞定了一部分了。 归根结底是内存分配的问题,如果不分配内存,就会导致访问冲突。 开始是个类的构造没有写,,,(写在另一个类的一个函数里面了,但是没有调用),后来是一些结构没有初始化。调用osip库的init系列初始化后,错误减少了很多。 现在还有很多错误
原创
35759阅读
9评论
0点赞
发布博客于 13 年前

MFC中获取各种类指针

 1、获取应用程序指针  CMyApp* pApp=(CMyApp*)AfxGetApp();2、获取主框架指针  CWinApp 中的公有成员变量 m_pMainWnd 就是主框架的指针  CMainFrame* pMainFrame = (CMainFrame*)(AfxGetApp()->m_pMainWnd);  或者  CMainFrame* pMainFrame = (CM
原创
1138阅读
0评论
0点赞
发布博客于 13 年前

struct

 结构类型定义和结构变量说明  在实际问题中,一组数据往往具有不同的数据类型。例如, 在学生登记表中,姓名应为字符型;学号可为整型或字符型;年龄应为整型;性别应为字符型;成绩可为整型或实型。 显然不能用一个数组来存放这一组数据。因为数组中各元素的类型和长度都必须一致,以便于编译系统处理。为了解决这个问题,C语言中给出了另一种构造数据类型——“结构”。它相当于其它高级语言中的记录。  “结构”是一种
原创
1012阅读
0评论
8点赞
发布博客于 13 年前

enum 在c中的使用

 如果一个变量你需要几种可能存在的值,那么就可以被定义成为枚举类型。之所以叫枚举就是说将变量或者叫对象可能存在的情况也可以说是可能的值一一例举出来。   举个例子来说明一吧,为了让大家更明白一点,比如一个铅笔盒中有一支笔,但在没有打开之前你并不知道它是什么笔,可能是铅笔也可能是钢笔,这里有两种可能,那么你就可以定义一个枚举类型来表示它! enum box{pencil,pen};//这里你
原创
6527阅读
2评论
0点赞
发布博客于 13 年前

C/C++动态内存创建与内存管理

 1 内存空间逻辑组织A 静态数据区:内存在程序启动的时候才被分配,而且可能直到程序开始执行的时候才被初始化,如函数中的静态变量就是在程序第一次执行到定义该变量的代码时才被初始化。所分配的内存在程序的整个运行期间都存在,如全局变量,static变量等。注意:初始化的全局变量和静态变量在一块区域,未初始化的全局变量与静态变量在相邻的另一块区域,同时未被初始化的对象存储区可以通过voi
原创
635阅读
0评论
0点赞
发布博客于 13 年前

struct深层探索

1. struct的巨大作用 面对一个人的大型C/C++程序时,只看其对struct的使用情况我们就可以对其编写者的编程经验进行评估。因为一个大型的C/C++程序,势必要涉及一些(甚至大量)进行数据组合的结构体,这些结构体可以将原本意义属于一个整体的数据组合在一起。从某种程度上来说,会不会用struct,怎样用struct是区别一个开发人员是否具备丰富开发经历的标志。在网络协议、通信控制、
原创
460阅读
0评论
0点赞
发布博客于 13 年前

函数指针及回调函数

 函数指针及回调函数 var $tag=;   1.什么是函数指针?void f();// 函数原型上面的语句声明了一个函数,没有输入参数并返回void。那么函数指针的声明方法如下:void (*) ();让我们来分析一下,左边圆括弧中的星号是函数指针声明的关键。另外两个元素是函数的
原创
445阅读
0评论
0点赞
发布博客于 13 年前

C++中class与struct的区别

 关于使用大括号初始化class和struct如果定义了构造函数的话,都不能用大括号进行初始化如果没有定义构造函数,struct可以用大括号初始化。如果没有定义构造函数,且所有成员变量全是public的话,可以用大括号初始化。 关于默认访问权限class中默认的成员访问权限是private的,而struct中则是public的。关于继承方式class继承默认是private继承,而struct
原创
616阅读
0评论
1点赞
发布博客于 13 年前

关于 typedef struct 和 struct

 关于 typedef struct 和 struct 请高手帮忙解释以下几种结构体定义的区别: struct{ int x; int y; }test1; struct test {int x; int y; }test1; typedef struct test {int x; int y }text1,text2; 这几种方法把小弟弄得头疼,不胜感激!问题补充
原创
568阅读
0评论
0点赞
发布博客于 13 年前

c语言中的结构(struct)和联合(union)

  联       合(union)      1. 联合说明和联合变量定义      联合也是一种新的数据类型, 它是一种特殊形式的变量。      联合说明和联合变量定义与结构十分相似。其形式为:       union 联合名{            数据类型 成员名;            数据类型 成员名;         
原创
711阅读
0评论
0点赞
发布博客于 13 年前

全面解析MFC应用程序中处理消息的顺序

 1.AfxWndProc()      该函数负责接收消息,找到消息所属的CWnd对象,然后调用AfxCallWndProc 2.AfxCallWndProc()  该函数负责保存消息(保存的内容主要是消息标识符和消息参数)供应用程序以后使用,然后调用WindowProc()函数 3.WindowProc()      该函数负责发送消息到OnWndMsg()函数,如果未被处理,则调用DefWi
原创
745阅读
0评论
0点赞
发布博客于 13 年前

typedef使用大全

 typedef使用大全1(数组) typedef到处都是,但是能够真正懂得typedef使用的不算太多。对于初学者而言,看别人的源码时对到处充斥的typedef往往不知所错,而参考书又很少,所以在此给出一个源码,供大家参考#include #include  /* 避免Visual C的for与标准for的不同 */#define for   if (0);   
原创
403阅读
0评论
0点赞
发布博客于 13 年前

C语言宏定义技巧(常用宏定义)

 1,防止一个头文件被重复包含 #ifndef COMDEF_H#define COMDEF_H //头文件内容#endif3,得到指定地址上的一个字节或字#define MEM_B( x ) ( *( (byte *) (x) ) )#define MEM_W( x ) ( *( (word *) (x) ) )4,求最大值和最小值  #define MA
原创
344阅读
0评论
0点赞
发布博客于 13 年前

C++ 虚函数表解析

 前言 C++中的虚函数的作用主要是实现了多态的机制。关于多态,简而言之就是用父类型别的指针指向其子类的实例,然后通过父类的指针调用实际子类的成员函数。这种技术可以让父类的指针有“多种形态”,这是一种泛型技术。所谓泛型技术,说白了就是试图使用不变的代码来实现可变的算法。比如:模板技术,RTTI技术,虚函数技术,要么是试图做到在编译时决议,要么试图做到运行时决议。  关于虚函
原创
352阅读
0评论
0点赞
发布博客于 13 年前

内存对齐

 考虑下面的结构:struct foo{char c1;short s;char c2;int i;};假设这个结构的成员在内存中是紧凑排列的,假设c1的地址是0,那么s的地址就应该是1,c2的地址就是3,i的地址就是4。也就是c1 00000000, s 00000001, c2 00000003, i 00000004。可是,我们在Visual c/c++ 6中写一个简单的程序:
原创
405阅读
0评论
0点赞
发布博客于 13 年前

在C中用struct实现C++中class的函数声明和定义

 原先对C中的struct理解只局限在数据结构体上,看了部分linux内核代码发现struct用处很多,功能很强大,可以在C环境下实现几乎所有C++中class的用处,我写了一个很简单的一个例子:#includestruct MyClass{        char* name;        int age;        void (*funnull) ();       
原创
703阅读
0评论
0点赞
发布博客于 13 年前

浅谈C语言程序设计的逻辑运算符

 虽然早在两年前,自己已经系统地学习过C语言,并且也通过了全国二级等级考试,可是当现在重新在学的时候,还是觉得有许多问题难以理解!的确,学无止境!    所谓“学,然后知不足,教,然后知困。”C语言的确博大精深。就拿逻辑运算符来说,它也并非我们想象中的那么简单,当许多运算符综合在一起,可能会很复杂。前些日子,刚刚学到运算符这边,本以为自己曾经学过而且这里又不是难点,应该不会出太大问题,可是
原创
1425阅读
1评论
0点赞
发布博客于 13 年前

C/C++头文件一览

  C、传统 C++#include     //设定插入点#include      //字符处理#include      //定义错误码#include      //浮点数处理#include     //文件输入/输出#include     //参数化输入/输出#include    //数据流输入/输出#include     //定义各种数据类型最值常量#inclu
原创
473阅读
0评论
0点赞
发布博客于 13 年前

C/C++中回调函数初探

 简介  对于很多初学者来说,往往觉得回调函数很神秘,很想知道回调函数的工作原理。本文将要解释什么是回调函数、它们有什么好处、为什么要使用它们等等问题,在开始之前,假设你已经熟知了函数指针。   什么是回调函数?   简而言之,回调函数就是一个通过函数指针调用的函数。如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用为调用它所指向的函数时,我们就说这是回调函数
原创
444阅读
0评论
0点赞
发布博客于 13 年前

友元类和友元函数

 《windows环境多线程编程原理与应用》中解释:  如果将类的封装比喻成一堵墙的话,那么友元机制就像墙上了开了一个门,那些得  到允许的类或函数允许通过这个门访问一般的类或者函数无法访问的私有属性和方     法。友元机制使类的封装性得到消弱,所以使用时一定要慎重。  ■ 友元类的说明   将外界的某个类在本类别的定义中说明为友元,那么外界的类就成为本类的“朋   
原创
410阅读
0评论
0点赞
发布博客于 13 年前

如何理解MFC中的动态创建?

MFC的动态创建是通过一些宏来实现的. 主要过程是: 1.在要实现动态创建的类(classA)的声明代码处加入一个静态的CRuntimeClass变量(b),并重载GetRuntimeClass()函数以返回b,并声明动态建立函数(C())(通过在类的声明处加入DECLARE_DYNCREATE宏) 2.在classA的定义代码处初始化b,b中记录了classA类的父类和C(),并实现C(),就是
原创
519阅读
0评论
0点赞
发布博客于 13 年前

MFC的关键技术:动态创建收藏

 动态创建就是运行时创建指定类的对象,在MFC中大量使用。如框架窗口对象、视对象,还有文档对象都需要由文档模板类对象来动态的创建。 初次接触MFC的时候,很容易有这样的迷惘。MFC的几大类不用我们设计也就罢了,但最疑惑的是不用我们实例化对象。本来最直观的理解就是,我们需要框架的时候,亲手写上CFrameWnd myFrame;需要视的时候,亲自打上CView myView;……但 MFC不给我们这
原创
593阅读
0评论
0点赞
发布博客于 13 年前

关于 [虚函数] 和 [虚函数表]

 以下转自:http://blog.csdn.net/cmoring/archive/2005/12/28/563582.aspx    每个含有虚函数的类有一张虚函数表(vtbl),表中每一项指向一个虚函数的地址,实现上是一个函数指针的数组。 虚函数表既有继承性又有多态性。每个派生类的vtbl继承了它各个基类的vtbl,如果基类vtbl中包含某一项,则其派生类的vtbl中也将包含同样的一
原创
457阅读
0评论
0点赞
发布博客于 13 年前

windows进程中的内存结构

 在阅读本文之前,如果你连堆栈是什么多不知道的话,请先阅读文章后面的基础知识。 接触过编程的人都知道,高级语言都能通过变量名来访问内存中的数据。那么这些变量在内存中是如何存放的呢?程序又是如何使用这些变量的呢?下面就会对此进行深入的讨论。下文中的C语言代码如没有特别声明,默认都使用VC编译的release版。 首先,来了解一下 C 语言的变量是如何在内存分部的。C 语言有全局变量(Global)、
原创
401阅读
0评论
0点赞
发布博客于 13 年前

明晰C++内存分配的五种方法的区别

 在C++中,内存分成5个区,他们分别是堆、栈、自由存储区、全局/静态存储区和常量存储区。   栈,就是那些由编译器在需要的时候分配,在不需要的时候自动清除的变量的存储区。里面的变量通常是局部变量、函数参数等。   堆,就是那些由new分配的内存块,它们的释放编译器不管,而是由程序员自己去控制,一般一个new就要对应一个delete。如果程序员没有释放掉,那么在程序结束后,操作系统会自动回收。
原创
319阅读
0评论
0点赞
发布博客于 13 年前

浅析C++中虚函数的调用及对象的内部布局

    在我那篇《浅析C++中的this指针》中,我通过分析C++代码编译后生成的汇编代码来分析this指针的实现方法。这次我依然用分析C++代码编译后生成的汇编代码来说明C++中虚函数调用的实现方法,顺便也说明一下C++中的对象内部布局。下面所有的汇编代码都是用VC2005编译出来的。虽然,不同的编译器可能会编译出不同的结果,对象的内部布局也不尽相同;但是,只要是符合C++标准的编译器,编译
原创
348阅读
0评论
0点赞
发布博客于 13 年前

浅析C++中的this指针

     有下面的一个简单的类:class CNullPointCall{public:    static void Test1();    void Test2();    void Test3(int iTest);    void Test4();private:    static int m_iStatic;    int m_iTest;};int CNullPointC
原创
438阅读
0评论
0点赞
发布博客于 13 年前

C++ class实例的内存结构

 这些天让一些概念和算法烦得不知所措,只能听从佛祖教诲的:放下,然后上csdn去,看了两篇关于c++的文章,这个年头,能这样拷问“茴”字多个写法的人不多了,在这里赞一下,但里面的一些东西还是没有挖掘干净,所以有了写一些东西的冲动. 正文 在c++中,一个类虚函数表指针和成员是如何在内存中组织的大家看前面的文章已经很清楚了,但如果出现一堆继承关系后,它们又是怎样在内存结构组织
原创
386阅读
0评论
0点赞
发布博客于 13 年前

条款1:尽量用const和inline而不用#define

这个条款最好称为:“尽量用编译器而不用预处理”,因为#define经常被认为好象不是语言本身的一部分。这是问题之一。再看下面的语句: #define ASPECT_RATIO 1.653编译器会永远也看不到ASPECT_RATIO这个符号名,因为在源码进入编译器之前,它会被预处理程序去掉,于是ASPECT_RATIO不会加入到符号列表中。如果涉及到这个常量的代码在编译时报错,就会很令人费解,因
原创
378阅读
0评论
0点赞
发布博客于 13 年前

条款1:尽量用const和inline而不用#define

Normal 0 7.8 磅 0 2 false false false MicrosoftInternetExplorer4 <!-- /* Font
原创
399阅读
0评论
0点赞
发布博客于 13 年前