今天我们来看一下如何像c语言中那样使用define来定义符号常量,我们定义的符号常量需要放到类中,被类中的成员所共享,下面通过代码来体现吧。

//类的头文件
#ifndef _MY_CLASS_H_
#define _MY_CLASS_H_
#include <iostream>

using namespace std;

class MyClass
{
private:
	//m_var因为是const的类型所以定义的时候就得初始化,但是不可以在类的声明中直接进行初始化,因为这个时候还
	//没有对象,也就没有为对象分配内存空间,没有内存空间如何存放值呢,但是可以在构造函数的初始化列表中进行初始化
	//const类型的成员变量是每个对象都有一份的,不是对象共享的
	const int m_var;
	//我们如何像c语言中那样使用define定义符号常量呢,在c++中可以使用如下的俩种方式,第一就是使用枚举类型
	//像下面这样的定义,这个enum的定义是属于整个类的,不是每个对象都有的,LEN只是一个符号,当程序中有LEN
	//的时候,会用20代替LEN
	enum {LEN=20};
	//另一种方法就是如下的方式,将AGE声明为static表示是属于整个类的(不需要创建对象为它分配内存空间),每个
	//对象共享这个static的变量,而const就代表这个AGE是不可以改变的,这样的话就定义出了一个符号常量了。
	static const int AGE=30;
public:
	//类的const常量可以在构造函数的初始化列表中进行初始化
	MyClass(int var=0):m_var(var){};
	int getVar(){return m_var;};
	int getLen(){return LEN;};
	int getAge(){return AGE;};
};

#endif