我正在学习Schildt的C++书籍,不太理解他在第三个结构下的意思; 有人能解释一下吗 ->
要访问结构数组中的特定结构,必须对结构名称进行索引。例如,要显示第三个结构的on_hand成员,您需要编写cout << invtry [2] .on_hand;
一些代码:
struct type{
char item[40];
double cost;
double retail;
int on_hand;
int lead_time;
}invtry[SIZE];
我正在学习Schildt的C++书籍,不太理解他在第三个结构下的意思; 有人能解释一下吗 ->
要访问结构数组中的特定结构,必须对结构名称进行索引。例如,要显示第三个结构的on_hand成员,您需要编写cout << invtry [2] .on_hand;
一些代码:
struct type{
char item[40];
double cost;
double retail;
int on_hand;
int lead_time;
}invtry[SIZE];
struct type{
char item[40];
double cost;
double retail;
int on_hand;
int lead_time;
};
const int SIZE = 500;
type invtry[SIZE];
SIZE
的定义。但这会导致更少的混乱 - 在一部分中,您说一个结构体的type
是什么 - 换句话说,您定义了type
类型。稍后,您创建了一个名为invtry
的type
结构体数组。
像作者一样在同一行中执行此操作太糟糕了-在我看来。
现在您有一个包含500个结构体的数组。如果"type"是"Product",则将拥有表示500种产品的数组。每个产品都有其商品、成本、零售价等。
要访问数组中的第三个结构体,请写入invtry[2]
。要访问其特定的on_hand
字段,请写入invtry[2].on_hand
。这与已定义类型的布局中on_hand
的具体位置无关。
如果要获取第三个结构体的lead_time
,请先访问第三个结构体,然后访问其lead_time
成员:invtry[2].lead_time
。
当然,由于该类型没有默认(无参)构造函数,因此这500个产品未初始化-其中包含垃圾。但那是你的问题。
尝试将“结构”替换为“数组项”。
因此,要访问invtry数组(它是一个结构体数组)中的第3个项目,您将使用invtry [2](索引从0开始,因此是2而不是3),然后是您想要读取的成员变量...
即invtry [2] .on_hand获取存储在'invtry'数组中第3个结构体的'on_hand'中的值
你不应该尝试从Schildt的书中学习。它们存在严重缺陷。 其中很多信息已经过时或者完全错误。 代码以丑陋和糟糕的风格编写,其中有许多C-isms。 请参阅ACCU图书评论以获取更详细的书评。
尝试阅读Koenig和Moo的《Accelerated C++》或Stroustrup的《使用C++进行编程原理和实践》作为良好的初学者指南。
bullschildt
(然后烧掉你的书)。 - fredoverflow