了解嵌套结构

时间:2014-08-23 00:23:29

标签: c++ visual-c++ struct nested

我目前正在开发一个需要嵌套结构的程序。虽然,我不确定我理解它。如果有人能的话,我希望你对此有所帮助。第一周学习C ++所以不要给我带来困难:P

我应该创建一个包含两个字符串成员的Person结构,第一个和最后一个。创建一个包含四个字符串成员,街道,城市,州和邮政编码的地址结构。并且还创建了一个嵌套结构Employee,它由三个成员组成。一个人 命名名称,名为homeAddress的地址成员和名为eid的int成员。

我认为我已经完成了大部分工作,但由于某些原因,我的地址homeAddress下不允许输入不完整的类型。此外,当它说创建一个嵌套结构“员工”这意味着我必须在某个地方声明员工吗?

这是我到目前为止所做的事情,提前谢谢。

#include <iostream>
#include <string>
#include <fstream>

using namespace std;

struct Person {
    string first;
    string last;
};

struct Address {
    string street;
    string city;
    string state;
    string zipcode;

    Person name;
    Address homeAddress;
    int eid;
};

2 个答案:

答案 0 :(得分:2)

您的代码几乎已经完成。它应该是:

struct Person {
  string first;
  string last;
};

struct Address {
  string street;
  string city;
  string state;
  string zipcode;
};

struct Employee {
  Person name;
  Address homeAddress;
  int eid;
};

现在这里的用词不当,嵌套也意味着可见性或范围。因此,如果您想在Address中定义结构PersonEmployee,它将如下所示:

struct Employee {
  struct Address {
    //..
  };
  struct Employee {
    //..
  };
  Person name;
  Address homeAddress;
  int eid;
};

这样,您就可以PersonAddress的范围仅限于Employee的范围。

答案 1 :(得分:1)

你很亲密

struct Person {
    string first;
    string last;
};

struct Address {
    string street;
    string city;
    string state;
    string zipcode;
};

struct Employee {
    Person name;           // instance of Person struct from above
    Address homeAddress;   // instance of Address struct from above
    int eid;
};

请注意,最后struct是&#34;嵌套&#34;正如您所描述的那样,因为它是一个struct,其中包含两个其他类型struct的成员。