Как-то мне синтаксис объявления массива объектов 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 попадает в конструктор ? Каким образом он туда передается ? Какая логика ? Спасибо.
Для тех, у кого был ступор относительно "to_string" класса (ибо Сергей не объяснял функционал, можно представить функцию в виде void, слегка изменив ее: (image) public: void info() { cout
Благодарю за уроки. Долго не был на Вашем канале, пытался читать учебник Павловской Т.А. для вузов (хотя бы домашние задания пригодились). Пора продолжить обучение и разобраться с классами. Рад, что канал развивается.
Прикольная матрешка получается: 1) создать объект_1 внешнего класса_1, который использует метод_1, метод который: 2) в цикле использует объект_2 внутреннего класса_2, класса который который спрятался за модификатором доступа private класса_1, и этот объект_2 использует метод, который обращается к приватным полям класса_2. Хороший пример иллюстрации контейнера.
Спасибо за уроки! Вопрос: при использовании конструкции проекта с одним файлом все работает, но когда делаю с Image.h ( заголовочный объемлющий класс) то в Image.cpp когда начинаю делать массив возникают ошибки (я так понимаю связанные с областью видимости), в заголовочном класс указал, а при объявлении массива тоже ошибка! Подскажите как можно реализовать данный код с заголовочными файлами для класса?
мне классы изначально были нужны для получения аналога функционального блока. Ну, сименс для домашнего пользования - дороговато, AVR долго паять/разводить, а ардуиновская платформа при осторожном использовании - в самый раз... А потом уже оказалось, что так можно сильно снизить ресурсопотребление.
Объект класса в другом классе инициируется при помощи *{* значение *}* (изначально с помощью скобок ( ) пробовал) Сделал класс компьютер. Внутри него создал класс части. Внутри сделал 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 просмотров ?:(
Подскажи пожалуйста!!! Мне нужно в Visual Studio 2017 написать код на языку Си. Я ставил компилировать на Си, вместо .срр ставил просто .с но не чего не получалось и мне выдавало ошибку в другом коде который уже бы при создание проекта. подскажи пожалуйста.
Скажите пожалуйста Сергей, а может ли класс Image быть дружественным классу Pixel? И может ли Pixel работать с полями и методами Image. И ещё в функции main можно ли будет создать объект Image через класс Pixel ??? Pixel::Image img;
Здравствуйте, помогите пожалуйста решить задачу - Написать программу, которая создает текстовый файл Output.txt, содержащий все числа файла Input.txt, кратные 5, в порядке убывания. Язык - С++
Почему класс Pixels нельзя было создать вне класса Image, а в Image сделать массив объектов внешнего класса? Это из за принципа инкапсуляции? Upd: а все, понял досмотрев видео
Зачем тебе ссылки на код, пиши по мере просмотра, тренируйся, экспериментируй. Я например на каждый урок пишу заново всё в ручную, это помогает привыкнуть, да и запоминается лучше.
@@ЕвгенийОсипов-и1ч тогда предлагаю посмотреть ещё раз весь курс, всегда найдутся нюансы, на которые не заострил внимание. Должен признаться, сам многое знакомое стал пересматривать. И ещё любую хоть в доску понятную информацию, стоит рассматривать из разных источников. Автор канала(очень благодарен ему за его стиль) всё же хоть и очень грамотно, но не до конца всё расскрывает. Может некоторые вещи ему показались не существенными, но ты про них может и не слышал вовсе. В любом случае его стиль изложения материала мне импонирует, хотя повторюсь, надо смотреть и другие взгляды на теже вопросы.
@@ЕвгенийОсипов-и1ч я занимаюсь в основном железками- микроконтроллерами, для меня это как повторение, но так как переходил с си, то встречаются для меня интересные ранее знакомые вещи,которые можно реализовать красивей.
потому что в массиве элементы и так являются уникальными и нам нужно только вызвать для них конструктор . Они и так уже можно считать пронумерованны от 0 до 4
Int nums[4] { 2, 20, 30, 4 } - массив чисел В nums[0] лежит 2 В нашем случае: Тип массива класс, а количество элементов в массиве - объекты класса. То есть в массиве уже есть объекты И для элементов массива(объектов) вызываешь конструктор
не для чего,) если убрать const (и инициализировать вне класса, т.к. буит ошибка) - тогда есть смысл: можно было бы регулировать "размер изображений" перед созданием объекта этого класса "из вне", например из main(), =)
Не понятный синтаксис: чтобы создать объект класса Pixel, если он(класс Pixel) private:, в классе Image, надо писать так - Pixel rgb{2,3,4}; а не Pixel rgb(2,3,4); - как обычно при создании объекта.
Спасибо за урок. Если будет время ответье пожалуйста. Можно написать игу, ту же змейку или майнкрафт, без библиотек opengl и fsml?Надеюсь я правильно написал их названия. Если нет , то можно их встроить так, чтоб при создании проекта, не ставлять их каждый раз. Спасибо.
коли використовуєте SFML то вона і її залежності автоматично додаються в ваш додаток, це робиться для того, щоб ваш додаток можна було запустити на іному комп'ютері де не встановлена SFML.
Я думаю можно и без внутреннего класса в данном случае. Просто создать приватную функцию Pixel и приватный массив Pixels. Смысл применения внутренних классов наверно более глубокий, такой что без них обойтись невозможно. Предположим есть класс конвертирующий валюту и в нём есть поле являющееся ссылкой некого класса Money....ещё в нём есть классы Dollar и Euro которые хранят данные о цене доллара и Евро, конвертируют в рубли и возвращают в объекте Money .
я вот одно не пойму как вообще допускается создание массива хотя он обьект класса 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 года👏👏👏
Спасибо что не сдаётесь,а продолжаете делать видео.
я нажимаю на лайк до того как смотрет ваши уроки))
Спасибо =)
Аналогично поступаю, потому что уверен ещё до начала видео в том что оно предоставит мне всю необходимую информацию по теме)
Вложенные классы с++ пример. Внутренние классы. Зачем нужны. 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 попадает в конструктор ? Каким образом он туда передается ? Какая логика ? Спасибо.
Для тех, у кого был ступор относительно "to_string" класса (ибо Сергей не объяснял функционал, можно представить функцию в виде void, слегка изменив ее:
(image) public:
void info() {
cout
#вложенныеклассы #внутренниеклассы #innerclass #ООП #SimpleCode #урокипрограммирования
Благодарю за уроки. Долго не был на Вашем канале, пытался читать учебник Павловской Т.А. для вузов (хотя бы домашние задания пригодились). Пора продолжить обучение и разобраться с классами. Рад, что канал развивается.
спасибо, вроде просто но нужно сесть самому написать все это и пройтись отладчиком.
Ты просто спаситель для студентов !
Самый крутой курс по с++
у Вас понятнее, чем на парах -_-
Не повезло тебе с преподавателем(или преподавателями).
Спасибо бро, очень интересно, скилл растет!
Спасибо за урок.
Спасибо
Добре пояснена тема! Дякую)
Благодарю за бесценную работу!
Спасибо за урок!
На 1 курсе универа было почему-то сложно учить ООП, но теперь с вашим каналом все изи)
Cпасибо! Фоном музыка классная играет!
SimpleCode - название вашего канала отвечает действительности)
Прикольная матрешка получается:
1) создать объект_1 внешнего класса_1, который использует метод_1, метод который:
2) в цикле использует объект_2 внутреннего класса_2, класса который который спрятался за модификатором доступа private класса_1, и этот объект_2 использует метод, который обращается к приватным полям класса_2.
Хороший пример иллюстрации контейнера.
Спасибо за ваши уроки, Сергей)!!!!
Замечательное видео! Огромное спасибо!
Супер! Ваши уроки просто великолепны!
Ну тема будто интуитовно понятная хех!
Круто!
"Спасибо!!!"*100!
Спасибо Вам большое!
Интересно, спасибо!
Спасибо за урок
огромное спасибо , еще когда смотрел уроки по классам хотел осуществить поиск по характеристикам объектов , теперь знаю огромное спасибо
Отличный урок, благодарю автора!
)
Спасибо за знание !
Благодарю за урок)
Спасибо за ваши уроки! Очень понятно :3
Спасибо за уроки! Вопрос: при использовании конструкции проекта с одним файлом все работает, но когда делаю с Image.h ( заголовочный объемлющий класс) то в Image.cpp когда начинаю делать массив возникают ошибки (я так понимаю связанные с областью видимости), в заголовочном класс указал, а при объявлении массива тоже ошибка! Подскажите как можно реализовать данный код с заголовочными файлами для класса?
Отличный урок. Было бы очень здорово, если бы вы в этом уроке показали как отрисовать эти пиксели)
Спасибо за урок)))
мне классы изначально были нужны для получения аналога функционального блока. Ну, сименс для домашнего пользования - дороговато, AVR долго паять/разводить, а ардуиновская платформа при осторожном использовании - в самый раз... А потом уже оказалось, что так можно сильно снизить ресурсопотребление.
Объект класса в другом классе инициируется при помощи *{* значение *}* (изначально с помощью скобок ( ) пробовал)
Сделал класс компьютер. Внутри него создал класс части. Внутри сделал 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() ?
Spasibo za Urok. Jdu ne dojdus uroki C# ocen nujni.
привет из 2023. Спасибо большое за уроки!
Спасибо огромное за очередной качественный видео урок) Только вот я не понимаю одного момента: в прошлом уроке вы говорили, что статические переменные в плюсах нужно объявлять вне класса, но в этом уроке вы объявили переменную длины массива сразу при создании и все отлично работает(?). Пока листал все комментарии, на подобный не натыкался, так что решил спросить) Хорошего дня!
Дело в const, объяви такую же переменную без const и будет ошибка
@@Jeff-cn4sf c++ для лохов python Для мужиков ( и их мужиков тоже)
Так-как переменная константная то не имеет смысла выделять под каждый из экземпляров новое место в памяти под значение, что даже не будет изменено в дальнейшем. Поэтому эффективней было б использовать одну статическую переменную на всех экземпляра, из-за этого компилятор и ругается. Ну и соответственно так-как это константная переменная то она требует изначальное объявление данных, и вынести объявление за класс не выйдет.
Спасибо за урок. Вот только мой компилятор Dev-C++ 5.4.2 не воспринимает to_string и поэтому пришлось создать функцию void, которая через cout выводила данные о пикселях.
сложновато, но понятно)))
Согласно теории в полях класса можно инициализировать лишь static const поля. Почему удалось инициализировать массив pixels?
Сергей,спасибо *большое* за старания ! Топ уроки на ютубе.
С каждым последующим видео (просмотры -= пару тыщ)
Что будет на 150 видео... 3000 просмотров ?:(
не боись, отборочный тур курса на этом видео почти заканчивается
Спасибо, урок понял))
to_string not working
update: oh! I've forgot to include string library
bivaet)
@@lmrbzv anglethanen💪
Лайк👍
Подскажи пожалуйста!!! Мне нужно в Visual Studio 2017 написать код на языку Си. Я ставил компилировать на Си, вместо .срр ставил просто .с но не чего не получалось и мне выдавало ошибку в другом коде который уже бы при создание проекта. подскажи пожалуйста.
Скажите пожалуйста Сергей, а может ли класс Image быть дружественным классу Pixel?
И может ли Pixel работать с полями и методами Image.
И ещё в функции main можно ли будет создать объект Image через класс Pixel ???
Pixel::Image img;
ну как, нашел ответ на вопрос?
В 12-й студии не создается массив пикселей(
12 студия давно устарела и не поддерживает новых стандартов принятых в С++ и других языках в новых версиях.
по сути вложенным классом Pixel мы заменили неудобный двумерный массив
Здравствуйте, помогите пожалуйста решить задачу - Написать программу, которая создает текстовый файл Output.txt, содержащий все числа файла Input.txt, кратные 5, в порядке убывания. Язык - С++
Почему класс Pixels нельзя было создать вне класса Image, а в Image сделать массив объектов внешнего класса? Это из за принципа инкапсуляции?
Upd: а все, понял досмотрев видео
Всем привет, 17 студия C2073, C3931, ругается на закрытие массива
Я только не понялб почему размер массива статичесский?
Хорошие уроки, но куда подевались ссылки на код?
Зачем тебе ссылки на код, пиши по мере просмотра, тренируйся, экспериментируй. Я например на каждый урок пишу заново всё в ручную, это помогает привыкнуть, да и запоминается лучше.
@@СтарыйВаленок-к4л за 2 года уже всё изучил=)
@@ЕвгенийОсипов-и1ч тогда предлагаю посмотреть ещё раз весь курс, всегда найдутся нюансы, на которые не заострил внимание. Должен признаться, сам многое знакомое стал пересматривать. И ещё любую хоть в доску понятную информацию, стоит рассматривать из разных источников. Автор канала(очень благодарен ему за его стиль) всё же хоть и очень грамотно, но не до конца всё расскрывает. Может некоторые вещи ему показались не существенными, но ты про них может и не слышал вовсе. В любом случае его стиль изложения материала мне импонирует, хотя повторюсь, надо смотреть и другие взгляды на теже вопросы.
@@СтарыйВаленок-к4л да не актуально, стек другой, на flutter клепаю
@@ЕвгенийОсипов-и1ч я занимаюсь в основном железками- микроконтроллерами, для меня это как повторение, но так как переходил с си, то встречаются для меня интересные ранее знакомые вещи,которые можно реализовать красивей.
не понял логики массива пикселей:
почему Pixel pixels [lenght] { Pixel(0,4,64) } a не {Pixel1(0,4,64)}
название объектов же должны быть?
потому что в массиве элементы и так являются уникальными и нам нужно только вызвать для них конструктор . Они и так уже можно считать пронумерованны от 0 до 4
Int nums[4] { 2, 20, 30, 4 } - массив чисел
В nums[0] лежит 2
В нашем случае:
Тип массива класс, а количество элементов в массиве - объекты класса. То есть в массиве уже есть объекты
И для элементов массива(объектов) вызываешь конструктор
В 13 студии возникает ошибка c2536: невозможно инициализировать массив. Как её обойти?
такая же ошибка. Есть решение? Заранее благодарен.
@@МаксимБобырь-й2л установить vs 2017
почему мы внутри класса пишем размер массива именно со статик ?static const int
нельзя присвоить к переменной создаваемой в классе значение, только через конструктор или как здесь через static
для чего нужен static в строчке static const LENGTH=5; ?
не для чего,) если убрать const (и инициализировать вне класса, т.к. буит ошибка) - тогда есть смысл: можно было бы регулировать "размер изображений" перед созданием объекта этого класса "из вне", например из main(), =)
Spsb
Не понятный синтаксис:
чтобы создать объект класса Pixel, если он(класс Pixel) private:,
в классе Image, надо писать так - Pixel rgb{2,3,4};
а не Pixel rgb(2,3,4); - как обычно при создании объекта.
нет, так писать не нужно, зачем нам нерабочий код?
спасибо))
Почему метод string???
Почему static const ,именно почему static ,а не просто const int LENGTH?
Static - говорит о том что это поле класса общее для всех объектов ( без static для каждого объекта выделялось бы отдельная ячейка памяти).
@@rows5486 ну и в чем проблема? Выделялось бы и пусть почему ошибка то выскакивает
@@rows5486 и не для каждого объекта а для каждой переменной length
+
Спасибо за урок. Если будет время ответье пожалуйста. Можно написать игу, ту же змейку или майнкрафт, без библиотек opengl и fsml?Надеюсь я правильно написал их названия. Если нет , то можно их встроить так, чтоб при создании проекта, не ставлять их каждый раз. Спасибо.
коли використовуєте SFML то вона і її залежності автоматично додаються в ваш додаток, це робиться для того, щоб ваш додаток можна було запустити на іному комп'ютері де не встановлена SFML.
Олександр Музичук Спасибо. Т.е SFML это получается не библиотека а вспомогательная программа, задача которой совсем другое?
Прыжки туда сюда, как в сказке как успеть за мыслью
Все понятно, просто надо самому тоже изучать. И все уроки смотреть
привэйт вроде
А нельзя обойтись структурой и функцией? тогда и никаких вложенных классов не потребуется
Я думаю можно и без внутреннего класса в данном случае. Просто создать приватную функцию Pixel и приватный массив Pixels. Смысл применения внутренних классов наверно более глубокий, такой что без них обойтись невозможно. Предположим есть класс конвертирующий валюту и в нём есть поле являющееся ссылкой некого класса Money....ещё в нём есть классы Dollar и Euro которые хранят данные о цене доллара и Евро, конвертируют в рубли и возвращают в объекте Money .
я вот одно не пойму как вообще допускается создание массива хотя он обьект класса 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
Спасибо за урок.
Спасибо за урок!
спасибо
Спасибо
спасибо