开发环境:visual c++ 6.0
共有如下文件:
static_class.h: 定义包含静态成员和静态方法的类
static_class.cpp: 类方法实现&类静态成员初始化
call_static_function.h: 访问类静态成员和类静态方法
main.cpp: 主函数入口
各文件内容如下:
static_class.h:
/**
* 文件名称:static_class.h
* 日期:2016-04-02
* 作者:jackie
* 描述:静态类成员变量使用测试
*/
#ifndef STATIC_CLASS_H
#define STATIC_CLASS_H
class CHello
{
public:
static void show();
public:
static int static_data;
};
//int CHello::static_data = 100;
#endif
static_class.cpp:
/**
* 文件名:static_class.cpp
* 日期:2016-04-02
* 作者:jackie
* 描述:类静态成员使用
*/
#include <stdio.h>
#include "static_class.h"
int CHello::static_data = 100;
void CHello::show()
{
printf("static data value %d\n", static_data);
}
call_static_function.h:
/**
* 文件名称:call_static_function.h
* 日期:2016-04-02
* 作者:jacke
* 描述:访问类中的静态成员
*/
#ifndef CALL_STATIC_MEMBER_H
#define CALL_STATIC_MEMBER_H
#include "static_class.h"
void call_static_member()
{
CHello::static_data += 100;
CHello::show();
}
#endif
main.cpp:
/**
* 文件名:main.cpp
* 日期:2016-04-02
* 作者:jackie
* 描述:主程序入口
*/
#include "static_class.h"
#include "call_static_function.h"
int main()
{
CHello::show();
call_static_member();
return 0;
}
工程在visual c++ 6.0 下编译通过,运行结果如下:
static data value 100
static data value 200
Press any key to continue [光标]
编写过程中遇到的错误
1. 尝试过在static_class.h中对static_data这个静态成员变量进行初始化,结果编译的时候报错,static_data重复定义
2. static_class.h和static_class.cpp中都不对static_data进行初始化,结果报错:unresolved external symbol
3. 在使用visual studio 6.0的时候,不小心将workspace hide了,结果只剩下一个编辑代码的界面,在工具栏右键,然后将workspace前面的方框打上勾,
workspace再次出现,如果不小心关闭了编译输出窗口,也可以用右键,将OutPut选项打上勾,编译输出窗口会再次出现