21xrx.com
2025-03-22 17:56:51 Saturday
文章检索 我的文章 写文章
如何在C++中初始化对象数组
2023-07-05 06:19:36 深夜i     17     0
C++ 初始化 对象数组

在C++中,我们可以通过数组来存储多个对象。但是,在创建对象数组时,我们需要给每个对象分配内存并初始化。下面,我们将讨论如何在C++中初始化对象数组。

第一种方法是在创建对象数组时,使用默认构造函数来初始化。例如,我们可以使用以下代码创建一个包含3个Person对象的person数组。

class Person{
 public:
  Person()   
   name = "";
   age = 0;
  
  string name;
  int age;
};
Person persons[3]; //默认构造函数来初始化

在这个例子中,我们使用默认构造函数来初始化了对象数组,这意味着每个Person对象的name和age成员都被设置为默认值。

第二种方法是使用带参数的构造函数来初始化对象数组。例如,如果我们想使用初始化列表来初始化对象数组,可以使用以下代码:

class Person{
 public:
  Person(string n, int a)   
   name = n;
   age = a;
  
  string name;
  int age;
};
Person persons[] = {
 Person("Tom", 20),
 Person("Mary", 25),
 Person("John", 30)
};

在这个例子中,我们使用了带参数的构造函数来为每个Person对象分配内存并初始化。我们使用了初始化列表来指定每个对象的name和age值。

第三种方法是在代码中使用循环来初始化对象数组。例如,如果我们想给每个对象分配相同的值,可以使用以下代码:

class Person{
 public:
  Person()   
   name = "";
   age = 0;
  
  void setName(string n)
   name = n;
  
  void setAge(int a)
   age = a;
  
  string name;
  int age;
};
Person persons[3];
for(int i = 0; i < 3; i++){
 persons[i].setName("Tom");
 persons[i].setAge(20);
}

在这个例子中,我们创建了一个空构造函数,然后使用循环来初始化每个对象的name和age值。

总结一下,我们可以使用默认构造函数、带参数的构造函数或循环来初始化对象数组。选择哪种方法取决于你的需求和代码的复杂度。无论你选择哪种方法,在构造函数中正确地分配内存并初始化变量是非常重要的,否则会导致程序崩溃或产生不可预测的结果。

  
  

评论区