Создание объекта в куче - new в C++
Объект можно создать отдельно от переменной. Оператор
new перед типом User выделяет память
и возвращает адрес объекта. Такую память называют кучей.
Запишем класс User:
#include <iostream>
#include <string>
class User {
public:
std::string name;
int age;
User(int age) : name("guest"), age(age) {}
};
Создадим объект через new и выведем поле через стрелку:
int main() {
User* p = new User(1);
std::cout << p->age << "\n";
return 0;
}
Конструктор с несколькими параметрами тоже вызывают
после new. Запишем класс с таким конструктором:
#include <iostream>
#include <string>
class User {
public:
std::string name;
int age;
User(std::string name, int age) : name(name), age(age) {}
};
Создадим объект с именем и возрастом и выведем оба поля:
int main() {
User* p = new User("john", 21);
std::cout << p->name << "\n";
std::cout << p->age << "\n";
return 0;
}
Сделайте класс Task с полем id
и конструктором с одним параметром int.
Создайте объект через new, сохраните адрес
в указателе и выведите id.
Создайте объект User через new
с именем и возрастом. Выведите имя через ->.