待到山花烂漫时,她在丛中笑.

发布新日志

  • C/C++笔记

    2007-09-12 10:24:28

        因面向对象的一大特征即"复用",Visual C++发展至今,MFC类库越来越强大.成熟稳定的MFC,当然是我们首选的类库之一.但如此多的类,派生类,让第1次使用的人望而生畏.

        其中,CObject类是MFC提供的绝大多数类的基类。该类完成动态空间的分配与回收,支持一般的诊断、出错信息处理和文档序列化等。

      CCmdTarget类主要负责将系统事件(消息)和窗口事件(消息)发送给响应这些事件的对象,完成消息发送、等待和派遣(调度)等工作,实现应用程序的对象之间协调运行。

      CWinApp类是应用程序的主线程类,它是从CWinThread类派生而来。CWinThread类用来完成对线程的控制,包括线程的创建、运行、终止和挂起等。

      CDocument类是文档类,包含了应用程序在运行期间所用到的数据。

      CWnd类是一个通用的窗口类,用来提供Windows 中的所有通用特性。

      CView 是用于让用户通过窗口来访问文档以及负责文档内容的显示。

      CFrameWnd 类是从 CWnd 继承来的,并实现了标准的框架应用程序。

      CDialog 类用来控制对话框窗口。

      CMDIFrameWndCMDIChildWnd类分别用来多文档应用程序的主框架窗口和文档子窗口的显示和管理。
           CMiniFrameWnd
    类是一种简化的框架窗口,它没有最大化和最小化窗口按钮,也没有窗口系统菜单,一般很少用到它。

     

                                             

     

     

  • C/C++笔记(一)

    2007-08-07 11:14:31

    三种函数传递参数方法:

    一、按数值调用(call-by-value)

    参数按值调用时,生成参数值副本并传给被调用函数,副本的改变并不影响调用者的原始变量值,这样可以防止意外的副作用影响开发正确、可靠的软件系统。

    但是,按值调用的一个最大缺点是如果传递较大的数据项目,则复制这个项目要花费较长的执行时间。

     

    return-value-type function-name(type value)

     

    二、用引用参数,按引用调用(call-by-reference reference argument)

    按引用调用时,调用者让被调函数能够直接访问调用者的数据,并允许修改其中的数据。引用参数是其相应的参数别名。要表示函数的参数是按引用传递的,只需要在函数原型中该参数类型后面加&,在函数首部出现的参数也要使用相同规则。

           在函数调用中,只要指定了变量名,该变量就会通过引用传递。在被调用函数体中,通过参数名指定的变量实际上就是引用了调用函数中的原始变量,被调用函数可以直接修改原始变量。

           在按值调用和按引用调用参数,所用的参数形式是相同的,都是只指定名称,如果不检查函数原型或函数定义要判断被调用函数是否修改了参数是不可能的,由于函数原型是强制的,因此编译器能顺利解决歧义性。

           由于引用参数在被调用函数体内只指定名称,因此程序员可能把引用参数当作按值调用的参数,这样如果调用函数改变变量原始副本,则可能产生预想不到的副作用。

    如果要传递较大的对象,用常量引用参数模拟按值调用的情况,避免较大对象副本开销。要指定引用常量在参数申明的类型说明符前面加const.

           return-value-type function-name(type &value)

     

    三、用指针参数,按引用调用(call-by-reference point argument )

    指针和引用一样,也可以修改调用者的一个或几个变量,或将大的数据对象指针传递给函数而避免按值传递对象大的开销。接受地址参数的函数要定义接收地址的指针参数。

    return-value-type function-name(type *value)

  • C/C++笔记(一)之函数

    2007-08-06 14:16:26

    函数:

    函数的目的1.“分而治之,各个击破”,使程序开发更容易管理。2.另一个重要的目的是软件的复用性。3.避免程序中的重复代码。

    软件工程视点

    每个函数只限于完成一个定义良好的任务,函数名应有效的表达这个任务,这样可以提高软件复用性。如果无法用简单名称表达出函数的作用,则可能是定义的函数要完成的任务太分散,通常应该把这类函数分解成几个更小的函数。

    函数定义格式:

    return-value-type function-name(parameter-list)

    {

           declarations and statements

    }

    函数名是任何有效标识符,返回值类型是函数向调用者返回值的数据类型,返回值类型为void,表示函数没有返回值。不指定返回值类型,则默认为int。参数表是用逗号分隔的清单,每个参数都应该显示的指定类型。如果函数不接受任何值,应该写空或void{}中的语句和申明构成函数体,任何情况下不能在一个函数中定义另一个函数。

    函数原型:

    C++重要特性之一是函数原型(function prototype),函数原型告诉编译器函数名称,函数返回的数据类型,函数要接收的参数个数,参数类型和参数顺序,编译器用函数原型验证函数调用,旧版C语言不进行这种检查。C++中要求函数原型,用#include预处理指令从相应库的头文件中取得。如果函数定义出现在程序中首次使用函数之前,则不需要函数原型,这时的函数定义就是函数原型。函数原型的另一个重要特性是强制参数类型转换,即强制参数为相应类型。

    NOTE:

    函数调用中的()实际上是C++的运算符,使函数可以调用,如果函数不取参数,则省略函数调用中的()并不是语法错误,但函数可能会在需要的时候无法调用。

我的栏目

数据统计

  • 访问量: 6118
  • 日志数: 8
  • 图片数: 2
  • 建立时间: 2006-12-05
  • 更新时间: 2007-12-19

RSS订阅

Open Toolbar