首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

请问给小弟我朋友:一个C++类的有关问题

2012-09-12 
请教给我朋友:一个C++类的问题大家好!现在我正在看c语言大学教程(第六版)书中有个例子在vc++6.0中编译不通

请教给我朋友:一个C++类的问题
大家好!现在我正在看c语言大学教程(第六版)书中有个例子在vc++6.0中编译不通过:提示
error C2258: illegal pure syntax, must be '= 0'
代码如下:
 

C/C++ code
#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];};#endif

 但是把static const int monthPerYear = 12; 放到类的定义外面就编译通过
这是为什么啊?

[解决办法]
不好意思,多写了个static.
C/C++ code
class 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.直接常量
希望对你有所帮助!

热点排行
Bad Request.