一半定在主程序的Initialize()函数中定义另外要在cpp文件中初始化

解决方案 »

  1.   

    我想定义一个在各个类中共用的变量,在stdafx.h中定义对不对啊,不太懂啊
      

  2.   

    全局变量,单独用一个文件就是;extern
      

  3.   

    static的变量,在C语言中。static的变量,定义在某一个c文件中,只能被这个c文件使用的变量,然后如果定义在函数中,就只能被这个函数使用,在C++中,类中定义的static变量,就是这个类所使用,无需创建对象也可以使用,但是必须在.cpp文件中初始化,赋予它生命
      

  4.   

    一般是类的头文件中声明比如在dlg.h中写语句static int a;,至于楼上说的初始化过程并不是必须的.比如int型的静态变量声明就已赋为0,假如要赋初始值时就要在类的执行体比如dlg.cpp中了,头文件中是无法赋值的,这点和c不太一样.一些数组类型赋初值要比c中麻烦,比如无法用C中int a[10]={0}之类的赋值方法了.
      

  5.   

    static是在文件中具有可见性,你在头文件中定义一个static,所有包含这个头文件的cpp文件都会生成自己的一个static变量定义,所以不同文件中其实不是同一个变量。static应该放在cpp文件中定义,比如stdafx.cpp,在头文件中用extern声明这个变量即可。
      

  6.   

    其实,static 是一个存储机制修饰,而不是作用域修饰
    static的特征
    1、静态存储:其生命周期与程序一致
    2、在程序启动时创建, 同时会被自动初始化为0由于上面两个特征:因此在类中的静态变量会被所有的实例共享变量作用域应该是另外一个问题,与变量声明的位置相关