0

私はこの小さなプログラムを持っており、Class オブジェクトを動的に作成する必要があります。以下のコメントを参照してください。

#include <conio.h>

#include "student.h"
#include "teacher.h"

int main() {
  short choose;

  do {

    std::cout << "\n1 - Insert student";
    std::cout << "\n2 - Insert teacher";
    std::cout << "\n3 - Show students";
    std::cout << "\n4 - Show teachers";
    std::cout << "\n5 - Exit";
    std::cout << "\n--> ";
    std::cin  >> choose;

    Student *students;

    switch (choose) {
    case 1 :
      // When user choose option 1, I would like to create
      // a new object "Student", so...
      students = new Student();
      // But if user choose 1 another time, how I create
      // another object "Student" ?
      // Could I do something like this?
      //  students = new Student[student_counter];
      break;
    }

  } while (choose != 5);

  system("pause");
  return 0;
}

Student クラスにはコンストラクターがあります。ありがとうございました。何か必要な場合は、教えてください。

4

1 に答える 1

1

を使用するだけstd::vector<Student>です。動的割り当てはまったく必要ありません。

std::vector<Student> students;

do {
  switch (choose) {
    case 1 :
      students.push_back(Student());
      break;
  }
}while(...)

割り当ての一部であったように、動的割り当てを使用する必要がある場合は、 astd::vector<Student*>と を使用してstudents.push_back(new Student)ください。後でメモリを手動で解放する必要があります。

于 2012-11-29T21:25:03.100 に答える