当前位置:首页
开发技术指南» 文章正文
    引言:

    摘要: asp页面和后台都构建好了,但客户方是用触摸屏做终端,用浏览器打开的话会有最小化/关闭的按钮. 请问大家,实现全屏的话,不改动现有的软件系统,有没有好的解决方案? 谢谢! ......
 ·关于 fd    »显示摘要«
    摘要: server : while ( 1) select( maxfd, &sockset, null, null, null); if ( fd_isset( sockfd, &sockset)) // 有新连接 建立新连接, 并将该连接描述符加入到 sockset 中去了. } for ( 所有有效连接) if ( fd_isset ( userfd[i], &so......


vc里全局变量用法反思

全局变量一般这样定义:  
  1。在一类的.cpp中定义   int   myInt;  
  然后再在要用到的地方的.cpp里extern   int   myInt;这样就可以用了。  
   
  2。在stdafx.cpp中加入:  
  int   myInt;  
  然后在stdafx.h中加入:  
  extern   int   myInt  
  这样定义以后无论在什么文件中都是可见的.  
   
  3。比较规范的是,先定义一个Glbs.h,把所有的全局变量原始定义放进去。然后定义一个Externs.h,把你先前定义在Glbs.h中的变量都加上extern。注意:如果你在Glbs.h中设置了初值,那么在Externs.h中就不要加值了。然后调用时,第一次调用的#include   <Glbs.h>,以后调用的#include   <Externs.h>  
   
  看了这几中方法,我突然在想,好象在vc里全局变量完全可以不用啊,可以这样做:在MainFrm.h中定义:int   myInt;以后在要用到的地方:CMainFrm   *frm=(CMainFrm*)AfxGetMainWnd();  
                                                                                          frm->myInt;  
  我现在搞不清这样用好不好???是不是这样就可以不用全局变量了??望大哥们指点一下,谢谢!!

NO.1   作者: nelsonc

关于变量放在什么地方不能一概而论。  
  即使全局变量也有它的意义。  
  如果你把他放到main   frame的class中,首先你要想好,这个变量到底应不应该作为frame的成员变量存在。假如,你的全局变量里存放的是窗口的背景颜色,那把它作为main   frame的成员是合适的;如果全局变量里存放你从注册表里读出来的配置信息,那放在main   frame中作为成员就不合适了,而应该放到App类中。  
  原则是必须根据类的概念来决定成员变量,每个变量只可能有一个最正确的地方。虽然你把所有全局变量都放在main   frame中,当然是可以的,程序也不会出错,但从逻辑上讲是错误的。  
  另外,该作为全局变量的(也就是放在哪各类里都不合适的),就应该写成全局变量。而不是一定要教条的把全局变量全去掉。  
  当然,决大多数情况是应该放在class里的变量却没放到class中,而是写成全局变量了。  
 

NO.2   作者: xqk

天外流星说的很对,如果全局变量多的话,那么我们可以将这些全局变量封装到一个类中,比如CGlobal,   而且此类应该在整个程序中只有一份,那么我们可以用singleton(单例设计模式)来建立这个类,来实现高内聚,松耦合的OOP  
   
  class   CGlobal  
  {  
  public:  
          static   CGlobal*   GetInstance();  
   
          bool   SetAppFlag(int   appFlag);                 //为全局变量封装方法  
          int     GetAppFlag(){return   appFlag;}       //为全局变量封装方法  
          ...  
  private:  
          CGlobal();  
          static   CGlobal*   m_instance;  
         
          //以下是封装后的全局变量  
          int   appFlag;  
  };


    摘要: a(void **pviewwindow) pviewwindow返回一个ivideowindow接口 我该如何去定义和使用 ......
» 本期热门文章:

©2000-2007 All Rights Reserved. 最佳浏览:1024X768 MSIE