class使用初始化技巧创建对象

时间:2015-09-06 23:13:13

标签: c++ arrays object

我有电话簿上的节目。第一节课

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;

每次调用此行时,它都会初始化类objs[100]中的phoneBook。假设我正在使用objs [2],那么我的objs [1]将是空的。请问如何解决我的结构?

1 个答案:

答案 0 :(得分:2)

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

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

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

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

此外,搜索StackOverflow或网页以获取" c ++电话簿示例"这应该会让你思考一堆例子。请记住,在发布此处之前先搜索。或者在发布之前先调试。