Для тех, у кого был ступор относительно "to_string" класса (ибо Сергей не объяснял функционал, можно представить функцию в виде void, слегка изменив ее: (image) public: void info() { cout
Как-то мне синтаксис объявления массива объектов Pixel(rr,gg,bb) совершенно не понятен (5:30). Pixel - это класс! По логике получается какой-то Массив из классов "Pixel", а не объектов "pixels(0,4,64)..." Тоесть получается какой-то совершенно аллогичный синтаксис! Может кто ее видит? Сравнить, к примеру с массивом из "int"... Как правило, когда логика нарушена, каждый раз приходится просто тупо запоминать, что не есть особенно хорошо. Жаль, уроков на тему массива объектов не было, хотелось бы поподробнее. В том числе, как такой массив можно в цикле организовывать, то же не понятно, какая-то каша в голове получается. За урок, большое спасибо - без урока, сам бы такое не "наворотил" :))
Понимаю, что видео давнее, но я никак не могу понять, зачем нам static для LENGTH, даже когда я пишу [this->LENGTH], возникает ошибка, что "оператор this можно использовать только внутри нестатической функции-члена" и сама ошибка мне ясна, но мне не ясно, из-за чего она вылетает, где вызывается эта самая нестатическая функциия-член? В чем эта функция заключается?
@@frosty7269 Для этого тебе немного назад надо вернуться, урок #92. "this" - прямой доступ на внутренние, данного класса переменные. А static он для того и объявляется, чтобы быть общим для всех объектов класса, он становотся виден извне класса, т.е. он не является чисто внутренним, поэтому написание "[this->LENGTH]" ошибочно
@@TheWladberlin this->LENGTH я писал, когда ещё не было static у LENGTH, по идее, LENGTH должен был во всех объектах создаваться свой, а по тому мне и не ясна ошибка, связанная с this.
Кто нибудь может объяснить каким образом при создании объекта Image img; массив pixels типа Pixel попадает в конструктор ? Каким образом он туда передается ? Какая логика ? Спасибо.
Благодарю за уроки. Долго не был на Вашем канале, пытался читать учебник Павловской Т.А. для вузов (хотя бы домашние задания пригодились). Пора продолжить обучение и разобраться с классами. Рад, что канал развивается.
Прикольная матрешка получается: 1) создать объект_1 внешнего класса_1, который использует метод_1, метод который: 2) в цикле использует объект_2 внутреннего класса_2, класса который который спрятался за модификатором доступа private класса_1, и этот объект_2 использует метод, который обращается к приватным полям класса_2. Хороший пример иллюстрации контейнера.
мне классы изначально были нужны для получения аналога функционального блока. Ну, сименс для домашнего пользования - дороговато, AVR долго паять/разводить, а ардуиновская платформа при осторожном использовании - в самый раз... А потом уже оказалось, что так можно сильно снизить ресурсопотребление.
Спасибо за уроки! Вопрос: при использовании конструкции проекта с одним файлом все работает, но когда делаю с Image.h ( заголовочный объемлющий класс) то в Image.cpp когда начинаю делать массив возникают ошибки (я так понимаю связанные с областью видимости), в заголовочном класс указал, а при объявлении массива тоже ошибка! Подскажите как можно реализовать данный код с заголовочными файлами для класса?
Объект класса в другом классе инициируется при помощи *{* значение *}* (изначально с помощью скобок ( ) пробовал) Сделал класс компьютер. Внутри него создал класс части. Внутри сделал 2 объекта: Монитор и батарея. Намутил метод для класса Компьютер.(Врубить комп),когда вызывается этот метод, Булиан переменные в Иннер классе меняются на true. Крууууть. Даже не представляю какие возможности откроются если посидеть и поковырять Классы в Классах Классов..... _Спасибо_ *большущее* #include #include #include #define cls system("cls") #define gtch _getch() using namespace std; class PC { public: void TurnOn() { screen.SwitchOn(); battery.SwitchOn(); } void TurnOff() { screen.SwitchOff(); battery.SwitchOff(); } void ShowPartCount() { cout
Спасибо огромное за очередной качественный видео урок) Только вот я не понимаю одного момента: в прошлом уроке вы говорили, что статические переменные в плюсах нужно объявлять вне класса, но в этом уроке вы объявили переменную длины массива сразу при создании и все отлично работает(?). Пока листал все комментарии, на подобный не натыкался, так что решил спросить) Хорошего дня!
Так-как переменная константная то не имеет смысла выделять под каждый из экземпляров новое место в памяти под значение, что даже не будет изменено в дальнейшем. Поэтому эффективней было б использовать одну статическую переменную на всех экземпляра, из-за этого компилятор и ругается. Ну и соответственно так-как это константная переменная то она требует изначальное объявление данных, и вынести объявление за класс не выйдет.
Спасибо за урок. Вот только мой компилятор Dev-C++ 5.4.2 не воспринимает to_string и поэтому пришлось создать функцию void, которая через cout выводила данные о пикселях.
Сергей,спасибо *большое* за старания ! Топ уроки на ютубе. С каждым последующим видео (просмотры -= пару тыщ) Что будет на 150 видео... 3000 просмотров ?:(
Скажите пожалуйста Сергей, а может ли класс Image быть дружественным классу Pixel? И может ли Pixel работать с полями и методами Image. И ещё в функции main можно ли будет создать объект Image через класс Pixel ??? Pixel::Image img;
Подскажи пожалуйста!!! Мне нужно в Visual Studio 2017 написать код на языку Си. Я ставил компилировать на Си, вместо .срр ставил просто .с но не чего не получалось и мне выдавало ошибку в другом коде который уже бы при создание проекта. подскажи пожалуйста.
Зачем тебе ссылки на код, пиши по мере просмотра, тренируйся, экспериментируй. Я например на каждый урок пишу заново всё в ручную, это помогает привыкнуть, да и запоминается лучше.
@@ЕвгенийОсипов-и1ч тогда предлагаю посмотреть ещё раз весь курс, всегда найдутся нюансы, на которые не заострил внимание. Должен признаться, сам многое знакомое стал пересматривать. И ещё любую хоть в доску понятную информацию, стоит рассматривать из разных источников. Автор канала(очень благодарен ему за его стиль) всё же хоть и очень грамотно, но не до конца всё расскрывает. Может некоторые вещи ему показались не существенными, но ты про них может и не слышал вовсе. В любом случае его стиль изложения материала мне импонирует, хотя повторюсь, надо смотреть и другие взгляды на теже вопросы.
@@ЕвгенийОсипов-и1ч я занимаюсь в основном железками- микроконтроллерами, для меня это как повторение, но так как переходил с си, то встречаются для меня интересные ранее знакомые вещи,которые можно реализовать красивей.
Почему класс Pixels нельзя было создать вне класса Image, а в Image сделать массив объектов внешнего класса? Это из за принципа инкапсуляции? Upd: а все, понял досмотрев видео
Здравствуйте, помогите пожалуйста решить задачу - Написать программу, которая создает текстовый файл Output.txt, содержащий все числа файла Input.txt, кратные 5, в порядке убывания. Язык - С++
потому что в массиве элементы и так являются уникальными и нам нужно только вызвать для них конструктор . Они и так уже можно считать пронумерованны от 0 до 4
Int nums[4] { 2, 20, 30, 4 } - массив чисел В nums[0] лежит 2 В нашем случае: Тип массива класс, а количество элементов в массиве - объекты класса. То есть в массиве уже есть объекты И для элементов массива(объектов) вызываешь конструктор
Не понятный синтаксис: чтобы создать объект класса Pixel, если он(класс Pixel) private:, в классе Image, надо писать так - Pixel rgb{2,3,4}; а не Pixel rgb(2,3,4); - как обычно при создании объекта.
не для чего,) если убрать const (и инициализировать вне класса, т.к. буит ошибка) - тогда есть смысл: можно было бы регулировать "размер изображений" перед созданием объекта этого класса "из вне", например из main(), =)
Я думаю можно и без внутреннего класса в данном случае. Просто создать приватную функцию Pixel и приватный массив Pixels. Смысл применения внутренних классов наверно более глубокий, такой что без них обойтись невозможно. Предположим есть класс конвертирующий валюту и в нём есть поле являющееся ссылкой некого класса Money....ещё в нём есть классы Dollar и Euro которые хранят данные о цене доллара и Евро, конвертируют в рубли и возвращают в объекте Money .
Спасибо за урок. Если будет время ответье пожалуйста. Можно написать игу, ту же змейку или майнкрафт, без библиотек opengl и fsml?Надеюсь я правильно написал их названия. Если нет , то можно их встроить так, чтоб при создании проекта, не ставлять их каждый раз. Спасибо.
коли використовуєте SFML то вона і її залежності автоматично додаються в ваш додаток, це робиться для того, щоб ваш додаток можна було запустити на іному комп'ютері де не встановлена SFML.
я вот одно не пойму как вообще допускается создание массива хотя он обьект класса Pixel? да ещё и его элементы это обьекты класса Pixel НО при этом у них нет названия. КАК так?? у них передаются данные для инициализатора а вот сам массив не понятно.. он ведь такой же обьект класса Pixel но вообще живёт своей жизнью без параметров Pixel pixels[LENGTH] { Pixel(0, 4, 64), Pixel(45, 46, 4), Pixel(90, 1, 70), Pixel(2, 56, 24), Pixel(33, 5, 99), }; умоляю обьясните
Зачем Вы учите быдлокоду: чтобы инициализировать объект Pixel надо написать конструктор Pixel(int r,int g,int b):r(r),g(g),b(b){} - всё!. Всё уже придумали за нас!
При чём тут быдлокод?Код должен быть легко читаемым.Код считается хорошим, если да же новичок взглянув на него сумеет понять что в нём происходит.То, что вы написали, а конкретно: Pixel(int r,int g,int b):r(r),g(g),b(b){} может быть не всем понятно.По вашему код считается лучше если мы уродуем и ужимаем его? Так что, в данном случае можно поспорить, что является быдлокодом...
2023, Это все еще лучший курс по ++ на Ютубе, Сергей - ты лучший, Бро!
это точно
Уже в 2024
Огромная работа! Сергею огромная благодарность от учащихся из 2024 года👏👏👏
Спасибо что не сдаётесь,а продолжаете делать видео.
#вложенныеклассы #внутренниеклассы #innerclass #ООП #SimpleCode #урокипрограммирования
я нажимаю на лайк до того как смотрет ваши уроки))
Спасибо =)
Аналогично поступаю, потому что уверен ещё до начала видео в том что оно предоставит мне всю необходимую информацию по теме)
Для тех, у кого был ступор относительно "to_string" класса (ибо Сергей не объяснял функционал, можно представить функцию в виде void, слегка изменив ее:
(image) public:
void info() {
cout
Вложенные классы с++ пример. Внутренние классы. Зачем нужны. inner class. ООП. Для начинающих. Урок #95
Как-то мне синтаксис объявления массива объектов Pixel(rr,gg,bb) совершенно не понятен (5:30). Pixel - это класс! По логике получается какой-то Массив из классов "Pixel", а не объектов "pixels(0,4,64)..." Тоесть получается какой-то совершенно аллогичный синтаксис! Может кто ее видит? Сравнить, к примеру с массивом из "int"...
Как правило, когда логика нарушена, каждый раз приходится просто тупо запоминать, что не есть особенно хорошо.
Жаль, уроков на тему массива объектов не было, хотелось бы поподробнее. В том числе, как такой массив можно в цикле организовывать, то же не понятно, какая-то каша в голове получается.
За урок, большое спасибо - без урока, сам бы такое не "наворотил" :))
Понимаю, что видео давнее, но я никак не могу понять, зачем нам static для LENGTH, даже когда я пишу [this->LENGTH], возникает ошибка, что "оператор this можно использовать только внутри нестатической функции-члена" и сама ошибка мне ясна, но мне не ясно, из-за чего она вылетает, где вызывается эта самая нестатическая функциия-член? В чем эта функция заключается?
@@frosty7269 Для этого тебе немного назад надо вернуться, урок #92.
"this" - прямой доступ на внутренние, данного класса переменные.
А static он для того и объявляется, чтобы быть общим для всех объектов класса, он становотся виден извне класса, т.е. он не является чисто внутренним, поэтому написание "[this->LENGTH]" ошибочно
@@TheWladberlin this->LENGTH я писал, когда ещё не было static у LENGTH, по идее, LENGTH должен был во всех объектах создаваться свой, а по тому мне и не ясна ошибка, связанная с this.
Кто нибудь может объяснить каким образом при создании объекта Image img; массив pixels типа Pixel попадает в конструктор ? Каким образом он туда передается ? Какая логика ? Спасибо.
Благодарю за уроки. Долго не был на Вашем канале, пытался читать учебник Павловской Т.А. для вузов (хотя бы домашние задания пригодились). Пора продолжить обучение и разобраться с классами. Рад, что канал развивается.
спасибо, вроде просто но нужно сесть самому написать все это и пройтись отладчиком.
Ты просто спаситель для студентов !
Добре пояснена тема! Дякую)
Самый крутой курс по с++
Спасибо бро, очень интересно, скилл растет!
Благодарю за бесценную работу!
Спасибо за урок!
Спасибо
Спасибо за урок.
Спасибо за ваши уроки, Сергей)!!!!
Супер! Ваши уроки просто великолепны!
SimpleCode - название вашего канала отвечает действительности)
Cпасибо! Фоном музыка классная играет!
На 1 курсе универа было почему-то сложно учить ООП, но теперь с вашим каналом все изи)
Замечательное видео! Огромное спасибо!
у Вас понятнее, чем на парах -_-
Не повезло тебе с преподавателем(или преподавателями).
огромное спасибо , еще когда смотрел уроки по классам хотел осуществить поиск по характеристикам объектов , теперь знаю огромное спасибо
Прикольная матрешка получается:
1) создать объект_1 внешнего класса_1, который использует метод_1, метод который:
2) в цикле использует объект_2 внутреннего класса_2, класса который который спрятался за модификатором доступа private класса_1, и этот объект_2 использует метод, который обращается к приватным полям класса_2.
Хороший пример иллюстрации контейнера.
Спасибо Вам большое!
Ну тема будто интуитовно понятная хех!
Круто!
Интересно, спасибо!
Спасибо за урок
Отличный урок, благодарю автора!
)
"Спасибо!!!"*100!
Спасибо за знание !
Благодарю за урок)
Спасибо за ваши уроки! Очень понятно :3
Spasibo za Urok. Jdu ne dojdus uroki C# ocen nujni.
Спасибо за урок)))
Отличный урок. Было бы очень здорово, если бы вы в этом уроке показали как отрисовать эти пиксели)
мне классы изначально были нужны для получения аналога функционального блока. Ну, сименс для домашнего пользования - дороговато, AVR долго паять/разводить, а ардуиновская платформа при осторожном использовании - в самый раз... А потом уже оказалось, что так можно сильно снизить ресурсопотребление.
привет из 2023. Спасибо большое за уроки!
Спасибо за уроки! Вопрос: при использовании конструкции проекта с одним файлом все работает, но когда делаю с Image.h ( заголовочный объемлющий класс) то в Image.cpp когда начинаю делать массив возникают ошибки (я так понимаю связанные с областью видимости), в заголовочном класс указал, а при объявлении массива тоже ошибка! Подскажите как можно реализовать данный код с заголовочными файлами для класса?
Объект класса в другом классе инициируется при помощи *{* значение *}* (изначально с помощью скобок ( ) пробовал)
Сделал класс компьютер. Внутри него создал класс части. Внутри сделал 2 объекта: Монитор и батарея.
Намутил метод для класса Компьютер.(Врубить комп),когда вызывается этот метод, Булиан переменные в Иннер классе меняются на true. Крууууть.
Даже не представляю какие возможности откроются если посидеть и поковырять Классы в Классах Классов.....
_Спасибо_ *большущее*
#include
#include
#include
#define cls system("cls")
#define gtch _getch()
using namespace std;
class PC
{
public:
void TurnOn()
{
screen.SwitchOn();
battery.SwitchOn();
}
void TurnOff()
{
screen.SwitchOff();
battery.SwitchOff();
}
void ShowPartCount()
{
cout
а может вместо static int Count() , напишешь геттер static int GetCount() ?
лайк
Спасибо огромное за очередной качественный видео урок) Только вот я не понимаю одного момента: в прошлом уроке вы говорили, что статические переменные в плюсах нужно объявлять вне класса, но в этом уроке вы объявили переменную длины массива сразу при создании и все отлично работает(?). Пока листал все комментарии, на подобный не натыкался, так что решил спросить) Хорошего дня!
Дело в const, объяви такую же переменную без const и будет ошибка
@@Jeff-cn4sf c++ для лохов python Для мужиков ( и их мужиков тоже)
Так-как переменная константная то не имеет смысла выделять под каждый из экземпляров новое место в памяти под значение, что даже не будет изменено в дальнейшем. Поэтому эффективней было б использовать одну статическую переменную на всех экземпляра, из-за этого компилятор и ругается. Ну и соответственно так-как это константная переменная то она требует изначальное объявление данных, и вынести объявление за класс не выйдет.
Спасибо за урок. Вот только мой компилятор Dev-C++ 5.4.2 не воспринимает to_string и поэтому пришлось создать функцию void, которая через cout выводила данные о пикселях.
сложновато, но понятно)))
Лайк👍
Сергей,спасибо *большое* за старания ! Топ уроки на ютубе.
С каждым последующим видео (просмотры -= пару тыщ)
Что будет на 150 видео... 3000 просмотров ?:(
не боись, отборочный тур курса на этом видео почти заканчивается
Согласно теории в полях класса можно инициализировать лишь static const поля. Почему удалось инициализировать массив pixels?
Спасибо, урок понял))
to_string not working
update: oh! I've forgot to include string library
bivaet)
@@lmrbzv anglethanen💪
Скажите пожалуйста Сергей, а может ли класс Image быть дружественным классу Pixel?
И может ли Pixel работать с полями и методами Image.
И ещё в функции main можно ли будет создать объект Image через класс Pixel ???
Pixel::Image img;
ну как, нашел ответ на вопрос?
В 12-й студии не создается массив пикселей(
12 студия давно устарела и не поддерживает новых стандартов принятых в С++ и других языках в новых версиях.
по сути вложенным классом Pixel мы заменили неудобный двумерный массив
Подскажи пожалуйста!!! Мне нужно в Visual Studio 2017 написать код на языку Си. Я ставил компилировать на Си, вместо .срр ставил просто .с но не чего не получалось и мне выдавало ошибку в другом коде который уже бы при создание проекта. подскажи пожалуйста.
Я только не понялб почему размер массива статичесский?
Хорошие уроки, но куда подевались ссылки на код?
Зачем тебе ссылки на код, пиши по мере просмотра, тренируйся, экспериментируй. Я например на каждый урок пишу заново всё в ручную, это помогает привыкнуть, да и запоминается лучше.
@@СтарыйВаленок-к4л за 2 года уже всё изучил=)
@@ЕвгенийОсипов-и1ч тогда предлагаю посмотреть ещё раз весь курс, всегда найдутся нюансы, на которые не заострил внимание. Должен признаться, сам многое знакомое стал пересматривать. И ещё любую хоть в доску понятную информацию, стоит рассматривать из разных источников. Автор канала(очень благодарен ему за его стиль) всё же хоть и очень грамотно, но не до конца всё расскрывает. Может некоторые вещи ему показались не существенными, но ты про них может и не слышал вовсе. В любом случае его стиль изложения материала мне импонирует, хотя повторюсь, надо смотреть и другие взгляды на теже вопросы.
@@СтарыйВаленок-к4л да не актуально, стек другой, на flutter клепаю
@@ЕвгенийОсипов-и1ч я занимаюсь в основном железками- микроконтроллерами, для меня это как повторение, но так как переходил с си, то встречаются для меня интересные ранее знакомые вещи,которые можно реализовать красивей.
Всем привет, 17 студия C2073, C3931, ругается на закрытие массива
Почему класс Pixels нельзя было создать вне класса Image, а в Image сделать массив объектов внешнего класса? Это из за принципа инкапсуляции?
Upd: а все, понял досмотрев видео
В 13 студии возникает ошибка c2536: невозможно инициализировать массив. Как её обойти?
такая же ошибка. Есть решение? Заранее благодарен.
@@МаксимБобырь-й2л установить vs 2017
Здравствуйте, помогите пожалуйста решить задачу - Написать программу, которая создает текстовый файл Output.txt, содержащий все числа файла Input.txt, кратные 5, в порядке убывания. Язык - С++
+
почему мы внутри класса пишем размер массива именно со статик ?static const int
нельзя присвоить к переменной создаваемой в классе значение, только через конструктор или как здесь через static
Spsb
не понял логики массива пикселей:
почему Pixel pixels [lenght] { Pixel(0,4,64) } a не {Pixel1(0,4,64)}
название объектов же должны быть?
потому что в массиве элементы и так являются уникальными и нам нужно только вызвать для них конструктор . Они и так уже можно считать пронумерованны от 0 до 4
Int nums[4] { 2, 20, 30, 4 } - массив чисел
В nums[0] лежит 2
В нашем случае:
Тип массива класс, а количество элементов в массиве - объекты класса. То есть в массиве уже есть объекты
И для элементов массива(объектов) вызываешь конструктор
Почему метод string???
Не понятный синтаксис:
чтобы создать объект класса Pixel, если он(класс Pixel) private:,
в классе Image, надо писать так - Pixel rgb{2,3,4};
а не Pixel rgb(2,3,4); - как обычно при создании объекта.
нет, так писать не нужно, зачем нам нерабочий код?
спасибо))
для чего нужен static в строчке static const LENGTH=5; ?
не для чего,) если убрать const (и инициализировать вне класса, т.к. буит ошибка) - тогда есть смысл: можно было бы регулировать "размер изображений" перед созданием объекта этого класса "из вне", например из main(), =)
Почему static const ,именно почему static ,а не просто const int LENGTH?
Static - говорит о том что это поле класса общее для всех объектов ( без static для каждого объекта выделялось бы отдельная ячейка памяти).
@@rows5486 ну и в чем проблема? Выделялось бы и пусть почему ошибка то выскакивает
@@rows5486 и не для каждого объекта а для каждой переменной length
Прыжки туда сюда, как в сказке как успеть за мыслью
Все понятно, просто надо самому тоже изучать. И все уроки смотреть
А нельзя обойтись структурой и функцией? тогда и никаких вложенных классов не потребуется
Я думаю можно и без внутреннего класса в данном случае. Просто создать приватную функцию Pixel и приватный массив Pixels. Смысл применения внутренних классов наверно более глубокий, такой что без них обойтись невозможно. Предположим есть класс конвертирующий валюту и в нём есть поле являющееся ссылкой некого класса Money....ещё в нём есть классы Dollar и Euro которые хранят данные о цене доллара и Евро, конвертируют в рубли и возвращают в объекте Money .
Спасибо за урок. Если будет время ответье пожалуйста. Можно написать игу, ту же змейку или майнкрафт, без библиотек opengl и fsml?Надеюсь я правильно написал их названия. Если нет , то можно их встроить так, чтоб при создании проекта, не ставлять их каждый раз. Спасибо.
коли використовуєте SFML то вона і її залежності автоматично додаються в ваш додаток, це робиться для того, щоб ваш додаток можна було запустити на іному комп'ютері де не встановлена SFML.
Олександр Музичук Спасибо. Т.е SFML это получается не библиотека а вспомогательная программа, задача которой совсем другое?
привэйт вроде
я вот одно не пойму как вообще допускается создание массива хотя он обьект класса Pixel? да ещё и его элементы это обьекты класса Pixel НО при этом у них нет названия. КАК так?? у них передаются данные для инициализатора а вот сам массив не понятно.. он ведь такой же обьект класса Pixel но вообще живёт своей жизнью без параметров
Pixel pixels[LENGTH]
{
Pixel(0, 4, 64),
Pixel(45, 46, 4),
Pixel(90, 1, 70),
Pixel(2, 56, 24),
Pixel(33, 5, 99),
};
умоляю обьясните
😂 хз, ну, коробка с объектами у которых вместо имён индексы
Просто массив объектов Pixel. Вот обычный массив объектов int:
int arr[5]
{
int(4),
int(33),
int(45),
int(7),
int(1),
};
+++++
up
У меня не работает код. Напишите пожалуйста кто читает этот коммент и знает в чем дело
Скажи хотя-бы какая ошибка
Зачем Вы учите быдлокоду: чтобы инициализировать объект Pixel надо написать конструктор Pixel(int r,int g,int b):r(r),g(g),b(b){} - всё!. Всё уже придумали за нас!
При чём тут быдлокод?Код должен быть легко читаемым.Код считается хорошим, если да же новичок взглянув на него сумеет понять что в нём происходит.То, что вы написали, а конкретно: Pixel(int r,int g,int b):r(r),g(g),b(b){} может быть не всем понятно.По вашему код считается лучше если мы уродуем и ужимаем его?
Так что, в данном случае можно поспорить, что является быдлокодом...
@@ramozxd6564 Что понятнее и очевиднее Pixel(int r,int g,int b):r(r),g(g),b(b){} или то,что написал автор, мне кажется ответ очевидным.
@user-pn6лучше ефторob5lw9u
Спасибо за урок.
Спасибо за урок!
спасибо
Спасибо
спасибо