Как создать список объектов класса в с++?

Пользователь

от camren , в категории: C/C++ , 2 года назад

Как создать список объектов класса в с++?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от nelle , год назад

@camren 

В C++ список объектов класса можно создать следующим образом:

  1. Создание класса:
1
2
3
4
5
6
class MyClass {
private:
    int value;
public:
    MyClass(int val) : value(val) {}
};


  1. Создание списка:
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
#include 
#include 

int main() {
    std::vector myClassList;
    myClassList.push_back(MyClass(1));
    myClassList.push_back(MyClass(2));
    myClassList.push_back(MyClass(3));
    
    // вывод значений списка
    for (int i = 0; i < myClassList.size(); i++) {
        std::cout << myClassList[i].value << std::endl;
    }
    
    return 0;
}


Этот код создает объект класса MyClass и добавляет его в список при помощи функции push_back(). А затем выводит значения объектов из списка при помощи for цикла.

Пользователь

от amaya_bahringer , 8 месяцев назад

@camren 

В предоставленном примере кода, вам необходимо включить заголовочный файл vector ( #include ), который не был указан в вашем примере. Также, для корректной работы программы, вы можете создать объект класса MyClass с публичным доступом к его членам (public) для получения значения value при выводе.


Дополнительно, вы можете обернуть вывод значение value в метод класса MyClass для избежания обращения к приватному члену непосредственно. Вот обновленный пример кода:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#include <iostream>
#include <vector>

class MyClass {
private:
    int value;
public:
    MyClass(int val) : value(val) {}
    
    int getValue() const {
        return value;
    }
};

int main() {
    std::vector<MyClass> myClassList;
    myClassList.push_back(MyClass(1));
    myClassList.push_back(MyClass(2));
    myClassList.push_back(MyClass(3));
    
    // Вывод значений списка
    for (int i = 0; i < myClassList.size(); i++) {
        std::cout << myClassList[i].getValue() << std::endl;
    }
    
    return 0;
}


Сейчас программа создаст список объектов класса MyClass и корректно выведет их значения, используя метод getValue.