C++类静态成员的使用

来源:互联网 发布:淘宝店铺怎么提现 编辑:程序博客网 时间:2024/06/11 16:55

开发环境: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选项打上勾,编译输出窗口会再次出现

0 0
原创粉丝点击