Сап фрилансера 300к\нс. Делаю практику по с++. В условие сказано что надо сделать конструктор и деструктор. Нахуя они вообще надо? И так всё работает. Пикрандом.
Смотри, иногда класс нужно "подготовить" т.е сконструировать. Допустим, если некоторые поля в нем динамические.(например массив). То просто так ты его не сгенеришь, его надо создать через new. Аналогично с деструктором, только теперь ты не можешь просто так уничтожить объектов тебе точно также надо удалитьтс помощью delete.
>>142779402 (OP) Бля, парень, это гуглицо за 10 минут. Конструктор нужен, чтобы быстрее создавать переменную данного класса с заполненными полями, уметь создавать переменную на основе другой и передавать переменные функциям и обратно. И еще часто нужно, чтоб определенное поле дефолтно принимало определенное значение в начале, например int b создавался с нулем. А деструктор нужен, чтобы подчищать за собой динамическую память
Конструктор вызывается при создании экземпляра объекта. Т.е. когда ты делаешь себе переменную своего класса 9/b/, например. perest_masiv N - при таком объявлении вызывается конструктор. Конструктор может быть няшным - тогда при создании экземпляра класса его можно сразу чем нибудь инициализировать. Наверное твой препод хочет от тебя, дауна, чтобы ты понимал, что программирование - не твоя свободная касса еще качает птичьи гнёзда. Я кончил.
>>142785119 Согласен. Проще ему книжку почитать. Я когда учился кодить - мля учился по сраному бейсику 80х годов на спектруме, литературы было не достать. Про конструкторы и деструкторы и динамическое выделение памяти, вот это всё - просто бредил, когда в техникум поступил. У ОПа есть интернет, препод, одногруппники - а он идет и спрашивает на двач про конструкторы.
>>142785259 ОП шли нахуй вот таких петухов. И не вздумай тратить свое время на чтение книг изза хуйни - эту мастурбацию стветуют анонисты. Я тебе написал конструктор - первое что срабатывает. Деструктор - последнее. Между ними твой код
>>142785399 конструктор есть всегда, еб твою мать даже если ты его не напишешь, он все равно будет он не для того, чтобы "делать что-то быстрее" конструктор нужен для того, чтобы объект создавался _правильно_, а не "быстрее"
в конце чего? если ты сейчас за пять минут не напишешь код, при котором у тебя объект создатся, а деструктор "в конце" не вызовется, то ты пиздабол, и не надо пытаться кого-то учить плюсам а если напишешь (ну, это же нехитрое дело, да?), то сам себя поправишь, что может, и в конце, а может и не быть в конце. это как у ОПа хватит внимательности правильно с объектами работать
>>142785421 ты просто мудак, который не понимает, зачем нужен конструктор, который ты пишешь руками поэтому твое объяснение больше похоже на пердеж твоей мамки, чем на полезный ответ ОПу
>>142785434 Я все птавильно написал, зануда ты дотошный. Предлогаешь вместо простого ответа изучить 100500 дисциплин и философию мирозбания дабы показать какое многогранное твое хобби и повысить этим свое чсв
>>142785604 ты упоролся, или в глаза ебешься? тебе ж два раза сказали, что конструктор с параметрами позволяет быстрее писать код. Не надо лишней ебалы.
a = new( хуемое ) a = new( новоехуемое )
в какой момент деструктор первого объекта сработает?
>>142779402 (OP) чтобы понять, на хера нужны конструктор и деструктор, тебе спера надо понять 1. динамическую работу с памятью 2. некоторые азы объектного программирования 3. особенности реализации ООП в С++
думаю, что для пункты 2 и 3 для твоей нужды вполне покроет книжка "thinking in c++". Насколько я помню, там разжевывается. И поясняется что, зачем, почему, и как не надо делать
Страуструпа тебе читать, очевидно, на текущем этапе своего развития бесполезно, только время потратишь. Кернигана с Ричи, пожалуй, тоже
>>142785642 Хуясе, ты еще ни одно из моих утверждений не опроверг, но уже кукарекаешь, как пидорюха. Либо говори, в чем я ошибся, что не написал, либо нахуй с двачей
>>142785755 я ебусь в твои глаза, да конструктор (хоть с параметрами, хоть без) позволяет не "быстрее писать код", а "правильно писать код"
вижу, что ты безграмотный второклассник. смотри, какое у меня безграничное терпение, ща я тебе распердолю:
1. если у тебя есть единственный конструктор YaYebalTvoyuMamashu(int mnogoRaz), это значит не то, что тебе будет быстрее создать объект с какой-то там переменной, а то, что ты можешь создать этот объект ТОЛЬКО ТАК, ЕБ ТВОЮ МАТЬ! при любой попытке создать объект конструктором без параметра или конструктором с тремя параметрами компилятор пошлет тебя на хуй. Еще раз, дело не в быстроте, а в контракте класса - я позволяю создавать объект, только указав сколько раз выебали твою мамашу. Потому что я считаю, что так надо. А не потому что так быстрее.
2. в твоем коде деструктор не вызовется ни один, и никогда. Ебаный программист с дипломом двача не доучил, что динамически созданные объекты следует уничтожать оператором delete, который и вызовет деструктор. А раз ты delete не написал, то и деструктор не вызвался, память утекла. А все потому, что вместо того, чтобы хоть одну книжку прочесть, ты на дваче из себя строишь охуенного специалиста.
Засунь свой язык себе же в жопу и съеби из треда. Или читай молча взрослых умных людей.
>>142786057 Ну делит для второго я тебе предположим не написал потому, что спрашивал про первый в своем ответе.
>при котором у тебя объект создатся, а деструктор "в конце" не вызовется
А про мозгоеблю - деструктор вызывается тогда, когда ТЫ уничтожаешь объект. Я тебе код по твоему ТЗ предложил.
Если у тебя есть один конструктор - ясен хуй, что ты не сможешь создать объект без параметров. Или это по твоему кому-то не ясно? Ну может ОПу, и то ненадолго.
По параметрам по умолчанию - они тоже контракт класса? когда ты позволяешь не указывать какой-то из них? Это банальное удобство, чтобы тебе не вызывать создание окна с дохуялиардом параметров, сделать тупой конструктор с тремя.
>>142786419 во-первых, признаю,что тебя не понял, и прошу прощения за лишний наезд
во-вторых >Если у тебя есть один конструктор - ясен хуй, что ты не сможешь создать объект без параметров. Или это по твоему кому-то не ясно? ОП спрашивает, зачем вообще нужны конструктор и деструктор. Ему что-то ясно, по-твоему? Я ругал анонов, за то, что они несут хуйню, которая составляет 1% правильного ответа. А сама по себе является неправильным.
контракт класса это все, что public, даже тот конструктор, который ты не напишешь, а он все равно будет (потому что он по цепочке пропихнет конструкторы всех родителей)
параметры по умолчанию это охуеть, какой контракт класса! потому что, по сути, у тебя получаются несколько сигнатур. хотя, по твоему дальнейшему описанию, я подозреваю, что, говоря о параметрах по умолчанию, ты имел в виду что-то другое
еще раз. конструктор с тремя параметрами, а не с десятью, ты делаешь не для того, чтобы юзеру класса было быстрее писать его код, а потому что считаешь, что такой конструктор будет уместен, т.е. правилен
я вообще не понимаю принципа "быстрее писать код" это ты переменные класса сделай паблик и забей на геттеры/сеттеры. до хуя времени сэкономишь на наборе get, set и скобочек
>>142786768 Вот блин, я к этому не был готов. Ну и я признаю, что я не программист на крестах, я их в колледже 15 лет назад учил :3 Я вообще IT манагер. Но оп - ленив и базы ему не хватает. Про инкапсуляцию я спорить не могу, т.к. она - святое.
ОП, не нужен тебе С++, на сегодня на нем пишут в основном там, где предметная область непроста. И ты, боюсь, ее не осилишь. В остальном это ебаное легаси, о которое шквариться не стоит. Учи нормальные языки для энетрпрайза и крудошлепства: джаву там, дотнет, пистон. Задрачивай базы данных, фреймворки, вот это все. Плюсы слишком гибки, будешь писать страшное говно и подвывать от неудобства.
Делаю практику по с++.
В условие сказано что надо сделать конструктор и деструктор.
Нахуя они вообще надо? И так всё работает.
Пикрандом.