21xrx.com
2024-09-20 05:40:25 Friday
登录
文章检索 我的文章 写文章
如何在C++中初始化对象数组
2023-07-05 06:19:36 深夜i     --     --
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值。

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

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复