1. 类的静态常变量成员必须在类中申明时候就初始化。并且只有静态常变量能够在申明时候初始化。
// static.cpp : 定义控制台应用程序的入口点。
//#include "stdafx.h"
#include <iostream>
using namespace std;
class A
{
private:
static const int a=1;
public:
//void add();
void display()
{
cout<<"a="<<a<<endl;
}
};
//int A::a=1;
/*void A::add()
{
a++;
}*/
void main()
{
A a;
//a.add();
a.display();
A b;
//b.add();
b.display();
}
2 类的静态成员要在类外用“类名::静态成员=初始化值”的方式初始化
// static.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include <iostream>
using namespace std;
class A
{
private:
static int a;
public:
void add();
void display()
{
cout<<"a="<<a<<endl;
}
};
int A::a=1;
void A::add()
{
a++;
}
void main()
{
A a;
a.add();
a.display();
A b;
b.add();
b.display();
}
3 const 类成员只能用构造函数初始化列表进行初始化
// static.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include <iostream>
using namespace std;
class A
{
private:
const int a;
public:
A(int x):a(x)
{
}
//void add();
void display()
{
cout<<"a="<<a<<endl;
}
};
/*void A::add()
{
a++;
}*/
void main()
{
A a(3);
//a.add();
a.display();
A b(4);
//b.add();
b.display();
}