请教给我朋友:一个C++类的问题
大家好!现在我正在看c语言大学教程(第六版)书中有个例子在vc++6.0中编译不通过:提示
error C2258: illegal pure syntax, must be '= 0'
代码如下:
#ifndef SALESP_H#define SALESP_H class SalePerson{public: static const int monthPerYear = 12; SalePerson(); void getSalesFromUser(); void setSale(int,double); void printAnnualSales();private: double totalAnnualSales(); double sales[monthPerYear];};#endifclass SalePerson{public: static const int monthPerYear; SalePerson(); void getSalesFromUser(); void setSale(int,double); void printAnnualSales();private: double totalAnnualSales();// double sales[monthPerYear];};const int SalePerson::monthPerYear = 12;
[解决办法]
你好我这么回答你看你能明白不:
1.程序编译运行顺序:
全局变量->主函数->其他;
因此将[static const int monthPerYear = 12;]放到主函数外边,此时便是全局函数,因此可以;
2.在C中数组的大小必须给定,而且是个常量值
在类内这样写[ static const int monthPerYear = 12; ]
1)首先,monthPerYear 是个变量;
2)static 表示该变量属于类本身,但不属于类的对象;
3)const 表示该变量在调用时不可以改变;
3.补充一点
实现常量的方法:1.宏定义
2.全局常变量(就是你的那种)
3.直接常量
希望对你有所帮助!