21xrx.com
2024-12-22 21:47:58 Sunday
登录
文章检索 我的文章 写文章
C++使用循环创建对象,每个对象地址不同
2023-07-10 17:20:29 深夜i     --     --
C++ 循环 对象 地址不同 创建

C++语言是一种非常流行的编程语言,它可以用于开发各种应用程序和系统软件。在C++中,我们可以通过循环来创建对象,并且每个对象的地址都是不同的。

循环是一种重复执行特定任务的语句,我们通常使用for、while或do-while循环来实现。在C++中,我们可以在循环体内使用new运算符来动态分配内存,并创建对象。

例如,我们可以使用以下代码创建10个Person对象,并将它们存储在一个指针数组中:


class Person {

  private:

    std::string name;

    int age;

  public:

    Person(std::string n, int a) : name(n), age(a) {}

};

int main() {

  const int NUM_PEOPLE = 10;

  Person * people[NUM_PEOPLE];

  

  for (int i = 0; i < NUM_PEOPLE; i++) {

    people[i] = new Person("Person " + std::to_string(i), i*10);

    std::cout << "Created person " << i << " at address " << people[i] << std::endl;

  }

  

  return 0;

}

在上面的代码中,我们定义了一个Person类,其中包含两个成员变量name和age。我们还为Person类创建了一个构造函数,该构造函数接受一个名称和一个年龄参数,并使用它们来初始化成员变量。

在main函数中,我们定义了一个指针数组people,它可以存储指向Person对象的指针。然后,我们使用for循环创建了10个Person对象,并将它们存储在people数组中。在创建每个对象的同时,我们还打印了对象的地址,以便我们可以确定每个对象的地址都是不同的。

需要注意的是,在程序结束时,我们需要释放所有动态分配的内存。我们可以使用一个for循环来遍历people数组,并使用delete运算符来释放每个对象的内存:


for (int i = 0; i < NUM_PEOPLE; i++) {

  delete people[i];

  std::cout << "Deleted person " << i << std::endl;

}

在使用动态内存分配时,一定要小心,避免出现内存泄漏或悬挂指针等问题。同时,我们也应该注意创建对象时内存的分布情况,确保每个对象都存储在不同的内存地址上。

  
  

评论区

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