Добрый день, посмотрел только что урок и у меня вопрос. Вы говорили что в классе Human нарушается инкапсуляция но если в функцию TakeApple передать аргумент через ключевое слово const то по идеи и изменить в ней ничего не смогут. И тогда в классе Human все норм будет. Или же есть какой то подвох? Уроки просто супер смотрю с открытым ртом и поглощаю знания)
Друзья, Сергей делает очень большой труд и достоин вознаграждения за него. Даже если каждый, кто посмотрел эти уроки скинут хотя бы 50 руб. Сергею будет очень хорошая мотивация делать еще более хороший контент(Хотя и без этого просто прекраснейший контент).
Блин, после этого видео, я наконец понял, как работают ссылки, весь их смысл. Я до этого читал статьи, пересматривал старые видосы, проходился по своим кодам в отладчике, и общей картины я не мог понять. И вот, сейчас, я понял)
Добрый день, посмотрел только что урок и у меня вопрос. Вы говорили что в классе Human нарушается инкапсуляция но если в функцию TakeApple передать аргумент через ключевое слово const то по идеи и изменить в ней ничего не смогут. И тогда в классе Human все норм будет. Или же есть какой то подвох? Уроки просто супер смотрю с открытым ртом и поглощаю знания)
Неплохие и понятные уроки. Но какие-то С-маньяки или сам Страуструп уже слишком навернули избыточными ООП деталями стандарты для С++ - поэтому на финале из старого лаконичного С получился очень громоздкий и сложный яз.
Здравствуйте, не знаю как у вас, а у меня в VS выбивает ошибку при запуске программы, если она реализована подобным образом... дело в том, что реализация метода класса Human под названием EatApple (не смотря на то что класс Human дружественный по отношению к классу Apple) должна быть вынесена из класса Human и записана после самого класса Apple, что бы этот метод класса видел весь класс Apple целиком а не только его прототип. В самом классе Human нам нужно только обьявить "прототип" метода EatApple, тоесть сделать все по тому же принципу что и в уроке про "дружественный метод класса".
Если метод пустой то компилятор может, если включена оптимизация кода, удалить его при компиляции из программы. И ошибки не возникает. К тому же студия VS и стандарты с++ несколько раз обновлялись с тех пор. Например ругается на void main (), char* = "xxx"; А вообще в уроках про дружественные методы была эта ситуация. И то что вы сказали как раз там и делалось.
Такая же ерунда, ошибка компиляции, хотя до сборки ошибка не подсвечивается. Работает только если метод EatApple вынести вне класса. Microsoft Visual Studio Community 2022.
Чет каша в голове. Подзабыл... Я правильно понимаю что при объявлении класса дружественным, дружественный класс может получать доступ к полям класса в котором объявлена дружба. Когда мы делаем это с методом для полного функционала мы должны вынести его?
class Apple;//объявление класса Apple чтобы класс Human его видел. class Human { public: //плохой код: //void eatApple( ); //хороший код: //хороший код //void eatApple(Apple& apple); void eatApple(Apple& apple) {
кто ни-будь . помогите пожалуйста. почему не получаеться поменять классы местами и работают они именно в таком порядке. долго смотрел и изучал . так и не понял
"с дружественностью на до быть осторожным" - золотые слова, применимы в реальной жизни, не только в виртуальной
что
чеееееееел
Хахах ору🤣
Сначала ты friend Human; а потом он EatApple();
Печальней истории вы не найдёте!
я на урок не плакать приходил
@@ylikitishnik1946 Я рыдал
Все как в жизни:(
@@Ann_Askerova, ну не всегда😅
Дружественные классы. ООП. friend class. friend c++ что это. C++ Для начинающих. Урок #91
#дружественныйкласс #дружественнаяфункция #ООП #SimpleCode #урокипрограммирования
Добрый день, посмотрел только что урок и у меня вопрос. Вы говорили что в классе Human нарушается инкапсуляция но если в функцию TakeApple передать аргумент через ключевое слово const то по идеи и изменить в ней ничего не смогут. И тогда в классе Human все норм будет. Или же есть какой то подвох?
Уроки просто супер смотрю с открытым ртом и поглощаю знания)
Очередное спасибо за урок.
человек, который создал эти урок, спасибо. Огромное человеческое спасибо.
спасибо все как всегда на высоте!
Друзья, Сергей делает очень большой труд и достоин вознаграждения за него. Даже если каждый, кто посмотрел эти уроки скинут хотя бы 50 руб. Сергею будет очень хорошая мотивация делать еще более хороший контент(Хотя и без этого просто прекраснейший контент).
классное предложение!!!
Я сейчас читаю, две книги по с++. Если б не Ваши уроки, я б ничего не понял. Спасибо вам ОГРОМНОЕ.
как успехи спустя 3 года?
@@ДмитрийНормов-ю6ц походу читает всё ещё
Блин, после этого видео, я наконец понял, как работают ссылки, весь их смысл. Я до этого читал статьи, пересматривал старые видосы, проходился по своим кодам в отладчике, и общей картины я не мог понять. И вот, сейчас, я понял)
Спасибо за информацию в конце) Наконец-то дошло почему по ссылке.. Вот она, мотивация, досматривать видео до конца)
Спасибо за урок.
Здравствуйте! Спасибо за уроки! Понятно и доходчиво объясняете. Было бы очень здорово если бы Вы сняли уроки по Windows API и Windows Form.
Автор канала вроде снимал мидео по Windows forms на C#
Спасибо за урок!
крутейший препод! спасибо
Спасибо
Как всегда просто о сложном! Спасибо большое!
Спасибо огромное
Спасибо за урок все понятно
Отличный бонус , спасибо вам за ваш труд ,отличные уроки.
Спасибо. Дружить будем аккуратно.))
Спасибо за знания!
Можешь показать, как работать с сокетами?
Спасибо за урок))
Спасибо большое!
привет из 2023. Спасибо большое за уроки!
// помахал рукой
Здравствуйте. Будут ли на видео уроки по созданию Windows Forms и WPF приложений?
Будут.
@@SimpleCodeIT знать бы еще что это :)
@@postnickovlyoha9101 :))) ну не вечно же в консоли работать
Finally, friendship is over!
Добрый день, посмотрел только что урок и у меня вопрос. Вы говорили что в классе Human нарушается инкапсуляция но если в функцию TakeApple передать аргумент через ключевое слово const то по идеи и изменить в ней ничего не смогут. И тогда в классе Human все норм будет. Или же есть какой то подвох?
Уроки просто супер смотрю с открытым ртом и поглощаю знания)
не важно для чего
главное что бы метод ничего не изменял
так это и смысл френда, чтобы иметь возможность что то менять
или 7:45 просто проверяли видит ли класс поля Apple и работать это не должно? в студии тоже не работает кстати
Неплохие и понятные уроки. Но какие-то С-маньяки или сам Страуструп уже слишком навернули избыточными ООП деталями стандарты для С++ - поэтому на финале из старого лаконичного С получился очень громоздкий и сложный яз.
Дружественность на костыль похожа
Здравствуйте, не знаю как у вас, а у меня в VS выбивает ошибку при запуске программы, если она реализована подобным образом...
дело в том, что реализация метода класса Human под названием EatApple (не смотря на то что класс Human дружественный по отношению к классу Apple) должна быть вынесена из класса Human и записана после самого класса Apple, что бы этот метод класса видел весь класс Apple целиком а не только его прототип. В самом классе Human нам нужно только обьявить "прототип" метода EatApple, тоесть сделать все по тому же принципу что и в уроке про "дружественный метод класса".
Если метод пустой то компилятор может, если включена оптимизация кода, удалить его при компиляции из программы. И ошибки не возникает.
К тому же студия VS и стандарты с++ несколько раз обновлялись с тех пор. Например ругается на void main (), char* = "xxx";
А вообще в уроках про дружественные методы была эта ситуация. И то что вы сказали как раз там и делалось.
Такая же ерунда, ошибка компиляции, хотя до сборки ошибка не подсвечивается. Работает только если метод EatApple вынести вне класса. Microsoft Visual Studio Community 2022.
Дякую 5++
Дякую!
чем дальше в лес, тем меньше людей остается. Сложновато запоминать такой длинный синтаксис
Даже у классов есть друзья :с
friend QilaurFuel; ;)
friend QilaurFuel
fruend Quazar; :>
9:10 можно просто константу поставить в принимаемых значениях
Можно, но можно их внутри класса так-же изменять
Здравствуйте. Будет ли урок на ключевое слово static?
Да, на этой неделе.
Спсб
👍👍👍
Чет каша в голове.
Подзабыл...
Я правильно понимаю что при объявлении класса дружественным, дружественный класс может получать доступ к полям класса в котором объявлена дружба.
Когда мы делаем это с методом для полного функционала мы должны вынести его?
0 дизлайков, круто
До сих пор ни одного)
@@Artem_Kovalchuk 1(((((
Уже 3, за целый год, не плохая статистика.
@@TH-cam-pomoyka, за 3,5 года
почему в методе TakeApple() мы передаем объект класса Apple не константным, этот метод же только выводит информацию и изменять ее никак не должен.
class Apple;//объявление класса Apple чтобы класс Human его видел.
class Human
{
public:
//плохой код:
//void eatApple( );
//хороший код:
//хороший код
//void eatApple(Apple& apple);
void eatApple(Apple& apple)
{
std::cout
А Вражеские Классы есть?)😂
up
не работает в реплит для объявления метода когда внутри класса Human, который:
void eatApple(Apple &apple){
std::cout
а ругается на точку после apple. , это работает для какой то определенной версии с++?
кто ни-будь . помогите пожалуйста. почему не получаеться поменять классы местами и работают они именно в таком порядке. долго смотрел и изучал . так и не понял
Есть ли разница между friend class Myclass и friend Myclass?
Ну кто блять поставил 1 дизлайк?
Тупа
Самое тупое видео
Спасибо за урок!
Спасибо за урок))
спасибо
спасибо