将结构转换为类?

时间:2016-05-08 03:57:08

标签: c++ class structure

假设我们正在通过创建类AddressBook来制作地址簿。我们在课堂上放了各种工具,包括添加成员的选项。如果我们使用结构来跟踪每个人的信息,它将如下所示:

class AddressBook {  
public:
    AddressBook()
    {
        count = 0;
    }

    void AddPerson();
    //More functions..

    struct Entry_Structure
    {
        char firstName[15];
        char lastName[15];
        char idNumber[15];
    };

    Entry_Structure entries[100];
    unsigned int count;
};

然后我们可以为AddPerson函数编写以下内容:

void AddressBook::AddPerson()
{
    cout << "Entry number " << (count + 1) << " : " << endl;

    cout << "Enter subject's first and last name: ";
    cin >> entries[count].firstName >> entries[count].lastName;

    cout << "Please enter the subject's ID number: ";
    cin >> entries[count].idNumber;

    ++count;                                               
}

但是,我没有使用结构代替Entry_Structure,而是使用

class Entry_Structure而不是struct Entry_Structure

我需要在程序和以下功能中进行哪些更改才能使其正常工作?

1 个答案:

答案 0 :(得分:3)

classstruct之间唯一的实际区别在于,默认情况下,班级成员为private,而struct成员是公开的。

所以:

struct Entry_Structure
{
    char firstName[15];
    char lastName[15];
    char idNumber[15];
};

相当于:

class Entry_Structure
{
public:
    char firstName[15];
    char lastName[15];
    char idNumber[15];
};