Счас смотрю уроки от GeekBrains по C# и твои одновременно по С++....и что хочу сказать, качество твоих уроков определенно выше.....и объясняешь намного понятнее,спасибо)
Я согласен. Тоже смотрел курс по C# на GeekBrains...Ничего не понятно. А SimpleCode разжевывает все детально, минимум вопросов остается или нет вообще.
#SimpleCode помогите решить задачу "розробіть програму,яка скорочує дріб.Чисельник та знаменник дробу(цілі числа) вводиться з клавіатури.Використовувати для цього функцію обчислення найбільшого спільного дільника двох натуральних чисел"(извиняюсь,за то что не перевёл ,не знаю как с украинского на русский) помогите написать эту программу на языке С++
Учу уже почти 8 месяце C++ , книги плюс ваши видео на втрой круг ! И только сейчас начла понимать что к чему потихоньку ! Где ты ещё работку взять что бы хоть какие то программы начинать писать с коллективом !?
СПАСИБО !!!! я ее немного изменил сделал без гетеров и сеторов #include"pch.h" #include #include #include using namespace std; /* дружественные функции */ class point { //доступно всем public: //недоступно private: int x; int y; int z; /* разрешить данной функции быть дружественной она работает в абсолютно любых полях класса */ friend void changex(point & value); /* разрешить данной функции быть дружественной она работает в абсолютно любых полях класса */ friend int dostup(point & value); }; int kol = 1; // разрешенная дружественная функция void changex(point & value) { value.x = rand()%100; value.y = rand() % 100; value.z = rand() % 100; } int dostup(point & value) { cout
Большое спасибо, часто после умных книжек смотрю ваши видео для наведения порядка в голове. Прочитала у лафоре про friend и не въехала, зачем вообще всё это нужно. Теперь всё встало на свои места
Я тоже после Лафоре. У него не очень понятно описано. Но там приводится интересный подход использования таких функций применительно операторных функций. Через friend-функции можно сделать так, чтобы, допустим, operator+ принимала два аргумента. Потому что в обычном виде операторная функция принимает либо 0 аргументов для унарных операций либо 1 аргумент для бинарных. Если непонятно написал, могу позже дописать.
Большое спасибо за урок! Правда, пересмотрел очень много всяких разных, но вы рассказываете на очень высоком уровне! Всё предельно ясно и чётко, отдельно хотелось бы сказать за подробности и за то, что регулярно проговариваете всякие мелочи и вроде бы простые и очевидные вещи, которые уже могли обсуждаться в прошлых уроках. Это очень важно, потому что именно постоянное упоминание и осознанное их использование делает их простыми :) Подскажите только один момент, пожалуйста, я мог прослушать, классы Point и Test можно назвать в данном случае дружественными? Что определяет дружественные классы, их упоминание друг в друге? Заранее спасибо за ответ! =)
ЭТО КРУТОО !!!!! Я В УДАРЕ #include"pch.h" #include #include #include using namespace std; /* дружественные функции */ class point; class test { public: private: int data = 0; friend void changex(point & value, test & testvalue); friend int dostup(point & value, test & testvalue); }; class point { //доступно всем public: //недоступно private: int x; int y; int z; /* разрешить данной функции быть дружественной она работает в абсолютно любых полях класса */ friend void changex(point & value,test & testvalue); /* разрешить данной функции быть дружественной она работает в абсолютно любых полях класса */ friend int dostup(point & value,test & testvalue); }; // разрешенная дружественная функция void changex(point & value, test & testvalue) { value.x = rand()%100; value.y = rand() % 100; value.z = rand() % 100; testvalue.data ++; } int dostup(point & value,test & testvalue) { cout
Я понимаю, что это очевидно, наверное, но если что, необязательно в дружественную функцию передавать параметром объект. Можно в ней создать экземпляр класса и поля так же будут доступны. Просто Сергей не уточнил это. Это будет выглядеть так: class MyClass { ... friend void Foo(); private: int size; ... }; void Foo() { MyClass obj; obj.size = 5; }
То бишь, если у нас есть функция, которая используется в нескольких классах, то благодаря этой фиче можно не прописывать её в каждом из них, а вынести отдельно, оставив внутри классов только её прототип, верно? Удобно.
Здравствуйте Сергей! Позвольте задать 1 вопрос. Если я посмотрю все ваши 88 выпусков по программированию на C++,то могу ли я назваться хотя-бы junior-ом? Практика и пересмотр уроков входят в вопрос.
Как правило, сейчас С++ в чистом виде уже не использует никто, как минимум для juniora нужно знать какие то фреймворки или библиотеки, с которыми придется работать в конкретной области
А если хочешь работать программистом зная язык в чистом виде, то учи java, C#....больше не скажу, сам пока недопрограммист, но С++ в любом случае лишним не будет, при том, что тут подача материала реально классная
Так а после прохождения базы чем можно заниматься? Чтобы идти на работу хотя бы джуниором нужно уметь работать в каком-то фреймворке ? Например тот же Qt? Можете ответить, просто без понятия куда двигаться после курса дальше и что изучать, везде на форумах пишут про разные библиотеки, фреймворки и т.п .
#SimpleCode, спасибо за уроки, они очень полезны для новичков. Хотел спросить по Patreon. Может ты введешь там разные плэджи? Например: 5$ - посмотрю и оценю ваш код 10$ - Дам вам лучшую по моему мнению литературу( которая даст определенный буст в развитии). 20$ - Проведу урок 1х1, скажу над чем работать. 40$ - ... и т.д. Еще раз спасибо за уроки, очень подробно и понятно.
Спасибо за совет. Но пока нет смысла делать нечто подобное, да и не знаю будет ли вообще, так как поддержать канал даже суммой 1$ выразил желание только один человек.
@@SimpleCodeIT пока из-за коронки денег нет :< хочу выучить c++ и некоторые библиотеки, и написать свою игру, и выложить в Steam. Может, хоть какой заработок будет и, наконец, смог полписаться на Patreon :>
Блин! Столько мыслей... А можно ли описывать внутри класса, создание другова класса Xd И типа методы другова класса делать дружественными? Также интересно, можно ли реализовать для слова friend некую выборку дружественных функций через массив, и чтобы они время от времени менялись ... Пожалуй не буду забегать в перёд... Просто ведь доступ к полям нашего класса получать по идеи нельзя с одной стороны, но с другой \._./ Ведь любой программист может описать дружественную функцию типа или внести изменение, типа:эта функция теперь дружественная и менять наши значения в полях ;| Думаю я слишком много думаю об этом... Поэтому \._./
Почему не работает "test.Print();"? Нет доступа к полю Print(). Но "a.Print();" работает. Не понимаю, как вывести в консоль значение в переменной test. Потому что функция Print() написана для класса Point и хранит 2 значения x и y. А класс Test хранит значение Data.
Счас смотрю уроки от GeekBrains по C# и твои одновременно по С++....и что хочу сказать, качество твоих уроков определенно выше.....и объясняешь намного понятнее,спасибо)
Я согласен. Тоже смотрел курс по C# на GeekBrains...Ничего не понятно. А SimpleCode разжевывает все детально, минимум вопросов остается или нет вообще.
Сергею надо на GeekBrains устроиться, и денег поднимет и качество курсов там.
Просто может тебе не нужно было записываться на курсы от GeekBrains? Так намного проще.
Сколько курс стоит?
@@ЕвгенийЗубков-б7о как почка
Сергей - преподаватель по призванию!!! Я уже почти 2 месяца учусь по его курсам и что хочу сказать - это
так прикольно💣👍👍
то самое чувство когда посмотрел пару твоих видосов и написал курсач. чел, ты классный
Во Фрэнд зоне оказывается не всегда плохо быть)) Урок как и все прошлые 87 штук лучшее!
вахвахвах
Сергей, вы прирожденный преподаватель!!!! спасибо Вам!!!
Дружественные функции и классы пример. Для чего используются. Как определяются. Для двух классов. C++ Для начинающих. Урок#88
#SimpleCode помогите решить задачу "розробіть програму,яка скорочує дріб.Чисельник та знаменник дробу(цілі числа) вводиться з клавіатури.Використовувати для цього функцію обчислення найбільшого спільного дільника двох натуральних чисел"(извиняюсь,за то что не перевёл ,не знаю как с украинского на русский) помогите написать эту программу на языке С++
#дружественныефункции #ООП #SimpleCode #урокипрограммирования
Хорошая эта вещь - Дружественная функция=)) Спасибо Сергей!!! предельно понятно.
Спасибо, очень интересно!
Учу уже почти 8 месяце C++ , книги плюс ваши видео на втрой круг ! И только сейчас начла понимать что к чему потихоньку ! Где ты ещё работку взять что бы хоть какие то программы начинать писать с коллективом !?
Придумывай сам себе задния)
OpenSource ждёт тебя
СПАСИБО !!!!
я ее немного изменил сделал без гетеров и сеторов
#include"pch.h"
#include
#include
#include
using namespace std;
/*
дружественные функции
*/
class point
{
//доступно всем
public:
//недоступно
private:
int x;
int y;
int z;
/*
разрешить данной функции быть дружественной
она работает в абсолютно любых полях класса
*/
friend void changex(point & value);
/*
разрешить данной функции быть дружественной
она работает в абсолютно любых полях класса
*/
friend int dostup(point & value);
};
int kol = 1;
// разрешенная дружественная функция
void changex(point & value)
{
value.x = rand()%100;
value.y = rand() % 100;
value.z = rand() % 100;
}
int dostup(point & value)
{
cout
Учиться по вашим урокам - одно удовольствие)
Уххх, забористые алгоритмы написания пошли, спасибо за разъяснение!
Большое спасибо, часто после умных книжек смотрю ваши видео для наведения порядка в голове. Прочитала у лафоре про friend и не въехала, зачем вообще всё это нужно. Теперь всё встало на свои места
А как в целом Лафоре?
Я после Лаффоре сюда пошёл 😂
Я тоже после Лафоре. У него не очень понятно описано. Но там приводится интересный подход использования таких функций применительно операторных функций. Через friend-функции можно сделать так, чтобы, допустим, operator+ принимала два аргумента. Потому что в обычном виде операторная функция принимает либо 0 аргументов для унарных операций либо 1 аргумент для бинарных. Если непонятно написал, могу позже дописать.
Специально не пропускаю рекламу. Хотя бы так отблагодарю за труд
прихожу после уроков Нетологии как к репетитору- сюда ! Вы просто мега-мозг, Сергей!
Большое спасибо за урок! Правда, пересмотрел очень много всяких разных, но вы рассказываете на очень высоком уровне! Всё предельно ясно и чётко, отдельно хотелось бы сказать за подробности и за то, что регулярно проговариваете всякие мелочи и вроде бы простые и очевидные вещи, которые уже могли обсуждаться в прошлых уроках. Это очень важно, потому что именно постоянное упоминание и осознанное их использование делает их простыми :)
Подскажите только один момент, пожалуйста, я мог прослушать, классы Point и Test можно назвать в данном случае дружественными?
Что определяет дружественные классы, их упоминание друг в друге?
Заранее спасибо за ответ! =)
Спасибо за урок.
Как всегда отличный урок, спасибо!))
Лайк Автоматом!
Отличный урок. Спасибо!
Благо дарю!
Привет из 2023, Спасибо большое за уроки!
ЭТО КРУТОО !!!!! Я В УДАРЕ
#include"pch.h"
#include
#include
#include
using namespace std;
/*
дружественные функции
*/
class point;
class test
{
public:
private:
int data = 0;
friend void changex(point & value, test & testvalue);
friend int dostup(point & value, test & testvalue);
};
class point
{
//доступно всем
public:
//недоступно
private:
int x;
int y;
int z;
/*
разрешить данной функции быть дружественной
она работает в абсолютно любых полях класса
*/
friend void changex(point & value,test & testvalue);
/*
разрешить данной функции быть дружественной
она работает в абсолютно любых полях класса
*/
friend int dostup(point & value,test & testvalue);
};
// разрешенная дружественная функция
void changex(point & value, test & testvalue)
{
value.x = rand()%100;
value.y = rand() % 100;
value.z = rand() % 100;
testvalue.data ++;
}
int dostup(point & value,test & testvalue)
{
cout
Спасибо
Спасибо, как всегда все круто объяснил! Спасибо! реализую контейнеры STL и разбираюсь c friend
Идеальное качество рус. уроков для плюсов и ООП. Поэтому дизлайки здесь не возможны с учетом соотв. уровня автора.
Спасибо за урок!
Спасибо, все понятно!
Спасибо.
Я понимаю, что это очевидно, наверное, но если что, необязательно в дружественную функцию передавать параметром объект. Можно в ней создать экземпляр класса и поля так же будут доступны. Просто Сергей не уточнил это.
Это будет выглядеть так:
class MyClass
{
...
friend void Foo();
private:
int size;
...
};
void Foo()
{
MyClass obj;
obj.size = 5;
}
а разве объект - это не экземпляр класса?
Не очень много смысла в твоем коде, конечно, хотя бы возвращай объект тогда, который создал
Спасибо за урок
Класс! Сергей, спасибо!
Очень понятно... благодаря вам)
крутая эта вещь а вам спасибо за урок
То бишь, если у нас есть функция, которая используется в нескольких классах, то благодаря этой фиче можно не прописывать её в каждом из них, а вынести отдельно, оставив внутри классов только её прототип, верно? Удобно.
Вы написали какую то чушь. Вообще не понятно, какое отношение ваш пост имеет к дружественным функциям.
От души 👍👍👍
Здравствуйте Сергей!
Позвольте задать 1 вопрос.
Если я посмотрю все ваши 88 выпусков по программированию на C++,то могу ли я назваться хотя-бы junior-ом?
Практика и пересмотр уроков входят в вопрос.
Как правило, сейчас С++ в чистом виде уже не использует никто, как минимум для juniora нужно знать какие то фреймворки или библиотеки, с которыми придется работать в конкретной области
Спасибо за информацию!
Николай всё правильно ответил. Мои уроки это лишь база, но без которой никуда.
А если хочешь работать программистом зная язык в чистом виде, то учи java, C#....больше не скажу, сам пока недопрограммист, но С++ в любом случае лишним не будет, при том, что тут подача материала реально классная
Так а после прохождения базы чем можно заниматься? Чтобы идти на работу хотя бы джуниором нужно уметь работать в каком-то фреймворке ? Например тот же Qt? Можете ответить, просто без понятия куда двигаться после курса дальше и что изучать, везде на форумах пишут про разные библиотеки, фреймворки и т.п .
@SimpleCode сколько уже народу подписалось на 1$? Иду подписываться.
Ти крутий мужик!
Вы лучший. А вы где нибудь препадаете? Хотел бы стать вашим учеником
#SimpleCode, спасибо за уроки, они очень полезны для новичков.
Хотел спросить по Patreon. Может ты введешь там разные плэджи?
Например:
5$ - посмотрю и оценю ваш код
10$ - Дам вам лучшую по моему мнению литературу( которая даст определенный буст в развитии).
20$ - Проведу урок 1х1, скажу над чем работать.
40$ - ...
и т.д.
Еще раз спасибо за уроки, очень подробно и понятно.
Спасибо за совет. Но пока нет смысла делать нечто подобное, да и не знаю будет ли вообще, так как поддержать канал даже суммой 1$ выразил желание только один человек.
@@SimpleCodeIT как успехи?)
@@SimpleCodeIT пока из-за коронки денег нет :<
хочу выучить c++ и некоторые библиотеки, и написать свою игру, и выложить в Steam. Может, хоть какой заработок будет и, наконец, смог полписаться на Patreon :>
@@SaffronChipMCPE ну и как?
Лайк не глядя
спасибо!!
Поставь восьмибитного музла на фон.
Блин!
Столько мыслей...
А можно ли описывать внутри класса, создание другова класса Xd
И типа методы другова класса делать дружественными?
Также интересно, можно ли реализовать для слова friend некую выборку дружественных функций через массив, и чтобы они время от времени менялись ...
Пожалуй не буду забегать в перёд... Просто ведь доступ к полям нашего класса получать по идеи нельзя с одной стороны, но с другой \._./
Ведь любой программист может описать дружественную функцию типа или внести изменение, типа:эта функция теперь дружественная и менять наши значения в полях ;|
Думаю я слишком много думаю об этом...
Поэтому \._./
8:50
что там ?
Почему не работает "test.Print();"? Нет доступа к полю Print(). Но "a.Print();" работает. Не понимаю, как вывести в консоль значение в переменной test.
Потому что функция Print() написана для класса Point и хранит 2 значения x и y. А класс Test хранит значение Data.
Надо для класса Test так же прописать функцию Print():
class Test
{
public:
void Print()
{
cout
есть ошибка : в конце компилятор ругается на testValue : использование не определеного типа Test. !!!
А как компилятор определяет эти буквы a, b ?
функцию надо ниже классов сделать, и всё будет работать
Здравствуйте! Зачем делать поля объекта private? Можно же поля оставить public?
Инкапсуляция.
Чтобы другой пользователь не смог к ним притронуться
это можно так и к 3 и более классам обратиться
Я ведь правильно понимаю что при наследовании нужно будет учитывать модификатор доступа к дружественной функции?
Нет. Вы не правильно понимаете. Не существует никаких "модификаторов доступа к дружественным функциям".
а могли бы объяснить как вывести еще значение дата в консоль, имхо выводиться только "х" и "у"
Наверное, уже не актуально..но если что - могу подсказать)
чёт не работает, член point x недоступен, хотя friend написал для него.
Это уже было сложно! реально сложно! спасибо!
Spsb
Чи или не чи?
up
+++++
Спасибо за урок!
Спасибо за знания!
спасибо