C++中常量的定义const比define的优势:
1:const常量有数据类型,编译器可以执行类型安全检查,而宏常量只是进行字符替换,所以没有类型安全检查
2:有些集成化调试工具对const常量进行调试,却不能对宏常量进行调试
#include <iostream>
using namespace std;
class MyClass
{
public:
enum{SIZE1=20,SIZE2=10};//枚举常量,实现整个类中都恒定的常量;缺点:隐含数据类型为整型
const int SIZE;//不能在此初始化
MyClass(int size);
MyClass();
protected:
//const int SIZE;
private:
//const int SIZE;
};
MyClass::MyClass(int size):SIZE(size)//可以在构造函数的初始化表中初始化
{
;//
}
MyClass::MyClass():SIZE(SIZE)
{
cout<<"default constructor"<<endl;
}
void main()
{
MyClass myclass(100);
MyClass myclassdefault;//"default constructor"
cout<<myclass.SIZE<