: itsInt(new int),
itsCh(new char)
...
во время инициализации тела конструктора или во время его выполнения?
Add::Add()
{
itsInt = new int;
itsCh = new char;
}
Хотя , можно сказать универсально - лучше использовать инициализаторы.
Лучше в списке инициализации, причём не голыми указателями, а unique_ptr, например.
с помощью std::unique_ptr или std::shared_ptr. А так как пожелаешь, можешь погуглить чем эти способы инициализации отличаются
https://en.cppreference.com/w/cpp/memory/unique_ptr Тут есть.
Add::Add() : itsInt( std::make_unique<int>(42)), // ... { }
Что именно ты хочешь сделать - по коду что-то весьма странное.
Вы издеваетесь, как я посмотрю уже, над учащимся.
С точки зрения С++ всё так. С точки зрения смысла - "это какой-то позор".
А зачем собственно?
я читаю книгу сейчас и тема про классы, а конкретнее - Дополнительные возможности использования функции. Впрочем, мой вопрос косвенно относится к этой теме, но всё же там есть примерчик с глубинным копированием, где и говорится, что "... тяжело представить случай, когда понадобится в теле класса определять указатели на переменные...". И мне стало интересно как правильно и лучше всего создавать динамические переменные с помощью конструктора, так как такая запись: Add::Add() : itsInt = new int { } не работает)
Обсуждают сегодня