在MFC中添加全局变量和全局函数的方法
2016-09-04 23:29
239 查看
用静态局部变量(Static)定义类中的函数、变量,则就相当于定义了全局函数、全局变量。
说明:(1)静态局部变量、函数在即使在改类没有对象的情况下,也可以调用但是要加上类名。如:在应用时输入 类名::函数 即可调用。
(2)静态局部变量的值为最后一次使用它给其赋的值。
具体步骤如下:
1. 添加一个没有基类的新类,设类名起为CPublic,姑且称之为公用类。
单击“项目”菜单下的“添加类”命令,在新弹出的对话框中选择C++类(即没有基类的类),点击添加,在新弹出的对话框中的“类名”栏中填入类名“CPublic”,单击“OK”,则新类建立完毕。
2.在要应用全局变量、函数的cpp文件中加入该头文件,即 #include “CPublic”。
3.在Public.h中声明全局变量和全局函数,均使用static修饰,静态变量还必须在类外定义和初始化,且定义不能保存在.h文件中。例如:
在Public.h中:
class CPublic
{
public:
CPublic();
virtual ~CPublic();
public:
static int x; //全局变量
static int time; //全局变量
static int f(int y); //全局函数
}
在Public.cpp中:
int CPublic::x = 0; //初始化全局变量,一定要注意,变量一定要先初始化赋值才可用,否则报错。
int CPublic::time; //定义全局变量
int CPublic::f(int y) //全局函数,这里不要再加static
{ y++; 4
return y;
}
4、全局量的使用
使用变量:CPublic::变量名
使用函数:CPublic::函数()
几点说明:
(1)由于静态量可独立于类存在,不需要生成CPublic类的实例。
(2)静态数据成员的定义和初始化必须在类外进行,如例中x的初始化;变量time虽然没有初始化,但也必须在类外进行定义。由于没有生成CPublic类的实例,所以它的构造函数和析构函数都不会被执行,在里面做什么工作都没有什么意义。
(3)如果静态函数需要访问CPublic类内的变量,这些变量也必须为静态的。因为非静态量在不生成实例时都不会存在。
(4)在声明静态局部变量、静态局部函数时要加static,但是在定义式不用加。
(5)在定义时,要用类名::变量(或函数)。
(6)引用时记得加上类名,即 类名::变量(或函数),而不是直接使用函数、变量。
(7)一定要注意,此处的变量一定要先初始化赋值才在其他类可用,否则报错。
说明:(1)静态局部变量、函数在即使在改类没有对象的情况下,也可以调用但是要加上类名。如:在应用时输入 类名::函数 即可调用。
(2)静态局部变量的值为最后一次使用它给其赋的值。
具体步骤如下:
1. 添加一个没有基类的新类,设类名起为CPublic,姑且称之为公用类。
单击“项目”菜单下的“添加类”命令,在新弹出的对话框中选择C++类(即没有基类的类),点击添加,在新弹出的对话框中的“类名”栏中填入类名“CPublic”,单击“OK”,则新类建立完毕。
2.在要应用全局变量、函数的cpp文件中加入该头文件,即 #include “CPublic”。
3.在Public.h中声明全局变量和全局函数,均使用static修饰,静态变量还必须在类外定义和初始化,且定义不能保存在.h文件中。例如:
在Public.h中:
class CPublic
{
public:
CPublic();
virtual ~CPublic();
public:
static int x; //全局变量
static int time; //全局变量
static int f(int y); //全局函数
}
在Public.cpp中:
int CPublic::x = 0; //初始化全局变量,一定要注意,变量一定要先初始化赋值才可用,否则报错。
int CPublic::time; //定义全局变量
int CPublic::f(int y) //全局函数,这里不要再加static
{ y++; 4
return y;
}
4、全局量的使用
使用变量:CPublic::变量名
使用函数:CPublic::函数()
几点说明:
(1)由于静态量可独立于类存在,不需要生成CPublic类的实例。
(2)静态数据成员的定义和初始化必须在类外进行,如例中x的初始化;变量time虽然没有初始化,但也必须在类外进行定义。由于没有生成CPublic类的实例,所以它的构造函数和析构函数都不会被执行,在里面做什么工作都没有什么意义。
(3)如果静态函数需要访问CPublic类内的变量,这些变量也必须为静态的。因为非静态量在不生成实例时都不会存在。
(4)在声明静态局部变量、静态局部函数时要加static,但是在定义式不用加。
(5)在定义时,要用类名::变量(或函数)。
(6)引用时记得加上类名,即 类名::变量(或函数),而不是直接使用函数、变量。
(7)一定要注意,此处的变量一定要先初始化赋值才在其他类可用,否则报错。
相关文章推荐
- MFC中定义全局变量和全局函数的方法
- 如何在MFC中添加全局变量和全局函数
- MFC中定义全局变量和全局函数的方法
- MFC中定义全局变量和全局函数的方法
- MFC中定义全局变量和全局函数的方法
- MFC中定义全局变量和全局函数的方法
- MFC中定义全局变量和全局函数的方法
- MFC中定义全局变量和全局函数的方法
- MFC中定义全局变量和全局函数的方法
- MFC中定义全局变量和全局函数的方法
- 在MFC下如何定义全局变量和全局函数
- MFC中定义全局变量的方法
- C++是定义全局变量和函数常用方法.
- PHP中函数内引用全局变量的方法
- 用VS2008进行MFC编程时添加变量出现脚本错误的解决方法
- 在MFC下如何定义全局变量和全局函数
- 在MFC下如何定义全局变量和全局函数(转)
- (vc)全局变量和全局函数便于管理的定义方法
- 用VS2008进行MFC编程时添加变量出现脚本错误的解决方法
- mfc中如何定义全局变量和全局函数