类创建对象与初始化技巧

class create object with initialization trick

本文关键字:初始化 创建对象      更新时间:2023-10-16

我在电话簿上有程序。第一类

class entry
{
  string name;
  int number;
   ...
}

使用第二类处理对象数组

   class phoneBook
{
   Entry objs[100];//maximum 100 users
   //getter and setter below
   ...
}

我有main()函数来控制它们

int main(){
    phoneBook p;
    p.count(count);
    p.add(count,name,number);
    p.print();
     ...
}

我的问题是:

 phoneBook p;

每次调用这一行时,它将初始化phoneBook类中的objs[100]。假设我在输入objs[2],那么objs[1]将是空的。请问如何修复我的结构?

您的phoneBook类应该只在必要时分配空间。由于您不知道条目的内容,因此在初始化时设置条目值是没有意义的。

我强烈建议您使用比数组更动态的结构,例如std::vectorstd::liststd::map

您的phoneBook类需要方法来"追加,或插入或读取"新条目。这将允许您用合理的数据填充分配的空间。

如果您为条目使用数组,则仅为条目分配空间。append方法最初会在objs[0]处放置一个新条目。objs[1]处的下一个条目,以此类推。

同样,在StackOverflow或web上搜索"c++电话簿示例",它应该会产生一堆示例供您思考。请记住,在这里发布之前先搜索。