类声明和操作的数组

时间:2017-06-25 12:04:34

标签: c++ arrays string class

我希望有人可以帮助解释初始化类数组的正确方法以及如何向数组中添加元素?

我的代码目前看起来像这样:

class Person
{
private:
    string surname;
    string forename;
    int age;
public:
    Person() { suraname, forename, age; }
    void getSurname();
    void getForename();
    void getAge();
};

最终,程序会将文件中的行读入数组以填充它,但首先我只想手动添加,以便我可以看到它正在工作。

因为会有多个人,我的数组是否需要2D?

最终我们将使用“getSurname()”循环遍历数组中的所有姓氏并将其打印到控制台。

在我的脑海中,我知道添加到数组会看起来像这样(虽然我不确定这是否是正确的方法)

int main()
{ 
    std::string Person[2][3] = {
      { "Smith", "John", "21" }, 
      { "Farr", "Michael", "35" }
    };
}

如果有人可以帮助解释/给予指导,我们将不胜感激。

谢谢!

1 个答案:

答案 0 :(得分:2)

一步之后......

解决此问题(因为不正确):

public:
    Person() { suraname, forename, age; }

必须是

之类的东西
public:
    Person(suraname, forename, age):suraname(suraname), forename(forename), age(age) { }

然后将其重命名为更合适的东西

std::string Person[2][3]

喜欢

std::string ArrayOFFieldsOfPerson[2][3] = ...

现在你可以从更容易处理的事情开始,比如

std::string testSurname{"XoceSurname"};
std::string testForename{"XoceForename"};
std::string testAge{"18"};

然后再做

int testAgeInt = std::stoi(testAge);
Person somePerson{testSurname, testForename, testAgeInt };

之后你已经正确构建了一个人的实例,对于一个数组,你可以做类似的事情:

Person somePersonArray[k];

然后使用循环填充数组