举个例子:
类A的声明与实现如下:
#pragma once
class A
{
public:
int count1;
//static int count2=100;//error ,带有类内初始值设定项的成员必须为常量
//const static int count3=100;//正确
static int count2;
public:
int getCount1();
static int getCount2();
public:
A(void);
~A(void);
};
#include "stdafx.h"
#include "A.h"
A::A(void):count1(99)
{
}
A::~A(void)
{
}
int A::getCount1()
{
return count1;
};
//static int A::getCount2()//error,此处不能指定存储类,即类体外来实现静态成员函数,不能加static关键字
//{
//
//};
int A::getCount2()
{
return count2*1000;
};
//初始化
int A::count2(1000);
测试文件如下:
// staticTest.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include <iostream>
#include "A.h"
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
A *a=new A;
//访问非静态成员
cout<<a->count1<<endl;
cout<<a->getCount1()<<endl;
cout<<