struct 类名{类体}; 自定义类的后面必须加;否则会报错。
在自定义类中,定义了一个string类型的变量。如下所示:
struct Sale_da
{
string ISBN;//书号
unsigned units_sold;//销售数量
double revenue;//总价格
};
将此结构放在一个头文件中,并在main函数中去调用,结果在调用的过程中,此结构不识别string类型的ISBN,而其他的两个变量都会识别到。编译之后出现的错误为:
经过排查错误,一个是Sale_da
---------------以下转自http://www.cnblogs.com/frustrate2/archive/2012/12/03/2799341.html-----------------
一般一个C++的老的带“.h”扩展名的库文件,比如iostream.h,在新标准后的标准库中都有一个不带“.h”扩展名的相对应,区别除了后者的好多改进之外,还有一点就是后者的东东都塞进了“std”名字空间中。
但唯独string特别。
问题在于C++要兼容C的标准库,而C的标准库里碰巧也已经有一个名字叫做“string.h”的头文件,包含一些常用的C字符串处理函数,比如strcmp。
这个头文件跟C++的string类半点关系也没有,所以<string>并非<string.h>的“升级版本”,他们是毫无关系的两个头文件。