关于c++primer第五版类的一个问题

图片说明
为什么蓝色框里的内容缺少了就编译错误?为什么蓝色框里的内容缺少了就编译错误?

这是前向声明,因为下一行声明read函数的时候用到了struct Sales_data,但这个结构的定义在文件的后面,此时还未定义,所以需要让编译器认识这个标记,知道这是一种结构

结构体的提前声明。。不然怎么知道有这个结构体???

你类比函数就可以理解了吧。
如果在调用函数之前还没定义也没声明,会报错的。
结构体也是类似的啊。