类创建对象与初始化技巧
class create object with initialization trick
我在电话簿上有程序。第一类
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::vector
、std::list
或std::map
。
您的phoneBook
类需要方法来"追加,或插入或读取"新条目。这将允许您用合理的数据填充分配的空间。
如果您为条目使用数组,则仅为条目分配空间。append
方法最初会在objs[0]
处放置一个新条目。objs[1]
处的下一个条目,以此类推。
同样,在StackOverflow或web上搜索"c++电话簿示例",它应该会产生一堆示例供您思考。请记住,在这里发布之前先搜索。
相关文章:
- C++:将初始化的对象传递给另一个类的构造函数;需要不必要的构造函数吗?
- 具有空洞初始化的对象的生存期
- 如何在初始化列表中的构造函数之后初始化变量/对象?
- 分配给已删除/未初始化的对象
- 如何同时创建一个具有两个或多个构造函数初始化的对象
- 为什么MSVC14允许声明指向动态未初始化常量对象的指针
- 删除通过取消引用新对象初始化的对象
- C++ 基元类型初始化与对象初始化
- 初始化多对象双对象<矢量<矢量<float>> >
- 构造函数初始化和对象损坏
- 可视化C++将分配移动到未初始化的对象?
- 编译器是否在由 new 初始化的对象上调用隐式析构函数
- 在C++中初始化bool32_t对象时,我们需要强制转换它还是它会自动识别它?
- 指向未由对象地址初始化的对象的指针如何将值分配给类的数据成员
- 静态初始化的对象不能放在块中尝试
- 初始化com对象的问题
- 引用非初始化的对象
- 初始化新对象时C++默认构造函数和 POD 问题
- 我从指针中得到一个非初始化的对象
- C STD ::初始化类对象中的Alloc错误错误