理解嵌套结构

Understanding Nested Structures

本文关键字:结构 嵌套      更新时间:2023-10-16

我目前正在编写一个需要嵌套结构的程序。虽然,我不确定我理解它。如果有人可以的话,我希望你能帮忙。第一周学习c++,所以不要为难我:P

我应该创建一个Person结构包含两个字符串成员,第一和最后。创建包含四个字符串成员的Address结构:街道、城市、州和邮政编码。还要创建一个嵌套结构Employee,它由三个成员组成。个人成员指定的name,一个名为homeAddress的Address成员和一个名为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;
};

您的代码几乎完成了。应该是:

struct Person {
  string first;
  string last;
};
struct Address {
  string street;
  string city;
  string state;
  string zipcode;
};
struct Employee {
  Person name;
  Address homeAddress;
  int eid;
};

这里的用词不当是嵌套也可以暗示可见性或作用域。因此,如果你想定义结构AddressPerson Employee之内,它看起来像这样:

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

这样,您就使PersonAddress的作用域仅为Employee的作用域。

你很接近了

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是"嵌套的",因为它是一个struct,包含的成员是struct的另外两种类型。