Сергей, спасибо вам огромное!! Очень доступно объясняете. Обычно никогда не комментирую никого, но тут качество вашего труда просто супер. Продолжайте в том же духе!
Если с использованием прототипа функции, то можно так: void foo(size_t = 5); int main() { foo(); return 0; } void foo(size_t a) { for (size_t i = 0; i < a; i++) std::cout
Спасибо за уроки! Было бы еще огромным + если бы вы в комментариях к видео давали к каждому уроку дз (пусть и не большое), чтобы каждую фишку показанную в роликах можно было тут же закрепить. Изучаю С++ по Доусону и параллельно ваши ролики.
Если у кого-то ошибка с параметрами по умолчанию у прототипа функции, это означает что нужно все параметры указать в прототипе и потом не указывать их в самой функции! ПРИМЕР: void foo(int a, string b = "*"); Указываем параметр по умолчанию в прототипе foo(10); Вызов foo(int a, string b){ И не указываем параметр по умолчанию в самой функции ..... }
привет Сергей! у меня следующий вопрос: а как правильно обращаться к функции если я хочу использовать, например, первый аргумент по умолчанию, а второй аргумент задать определенным?
Аргументы по умолчанию всегда должны идти последними. В таком случае, при вызове функции, нужно передавать только те параметры, для которых нет значений по умолчанию.
прошу прошения, я видимо некорректно сформулировал вопрос. Допустим у меня есть функция где используются три параметра и все они заданы со значениями по умолчанию ( void foo(int a=1, int b=2, int c =3)). А где-то далее в коде я вызываю эту функцию, использую первые две переменные со значениями по умолчанию а третий параметр задаю с = 5. Так вот вопрос, как правильно записать эту функцию?
А мы можем задать значение, первой переменной в функции, и скажем третьей, вот пример Void foo (int a, int b = 7, int c = 0) Вот в этом примере задать только первой и третей а второй оставить как есть, но не задавать ту же цифру7 , а просто как ба так и оставить
Изи, смотри, как будешь вызывать функцию, в скобках присвой какое тебе надо значение для int a, второй переменной b присвой значение 0 и также присвой какое тебе надо значение для int c Всё гениальное просто, а автору большое спасибо за его видео и труд, низкий поклон вам Сергей, обещал вам, что если стану программистом, то как следует поддержу канал, я иду к этой цели!
А вот интересно, что когда объявляешь сначала прототип с параметром по умолчанию, а потом в описании самой функции ниже тоже указываешь параметр по умолчанию, то пишет ошибку. Методом тыка пришел к выводу, что параметр по умолчанию нужно указывать только в прототипе, если вообще используешь прототип. Или я чет не вкурил?
слушай, ответь мне пожалуйста, а если я хочу пропустить второй параметр оставить по умолчанию, но поменять третий, что делать? могу так допустим написать при вызове? foo(1, ,3); что бы он оставил 2 - ой параметр как есть, а третий поменять
Есть вопрос: допустим у меня определена функция foo(int a=2, int b=3), могу ли я обратиться к функции foo с a- по умолчанию, b - собственное значение, при этом явно не указывая а в обращении к функции?
Сказать что это просто - ничего не сказать. Можно использовать std :: bind для выполнения такой операции или в C ++ 14/17 можно использовать лямбда-функцию и выполнить то же самое. Но проще для этой цели передать в функцию массив или структуру. Как-то так )
а как создать прототип для такой функции? если у нас есть void Sum(int a = 0, int b = 0){ // код} и записать в начале кода void Sum(); компилятор ругается на отсутствие данной функции, если записать void Sum(int a = 0, int b = 0); будет ругаться на перезапись значений по умолчанию, а если записать void Sum(int a, int b ); то значения по умолчанию и все пропадают, что делать и как правильно создать такой прототип?
В прототипе функции необязательно указывать имена передаваемых в неё переменных, можно просто указать столько типов данных, сколько мы передаём в функцию переменных, например: void Func(int, bool); void Func(int a, bool b) { /*body*/ } Крч, просто пиши типы данных, без имён, и всё.
@@BadDanFeeds Спецом попробовал ваш вариант, VS2017 работает норм если функция и прототип до main но если закинуть ее за main то компилятор ругается что у него нет аргументов для передачи и по умолчанию не работает, работает только если в прототипе указать значения по умолчанию а в самой функции просто тип и переменную.
Поставил я себе задачу заполнить двумерный массив уникальными случайными числами. Заполнить так массив труда не составило, но вот сделать проверку на повторение не подучается. Может кто-нибудь что-то посоветовать?
//main srand(time(NULL)); const int row = 5; const int col = 5; int arr[row][col]; for (int i = 0; i < row; i++) { for (int j = 0; j < col;) { bool alreadyhere = false; int newRand = rand() % 25+1; for (int k = 0; k
Заметил, что эти параметры по умолчанию очень криво и непонятно работают с прототипами функций. Точнее вообще не работают, особенно, когда хочешь передать только 1 параметр, например из двух. Поставил функцию в начало и удалил прототип - заработало.
Сергей, попытался использовать прототип функции. При наличии дефолтных переменных в функции компилятор ругается. Подскажите пожалуйста, как быть в подобной ситуации и все же использовать прототип с параметрами по умолчанию?
Не вполне понял, зачем на практике передавать аргументы в функцию по умолчанию? В каких случаях это нужно и удобно? Т. е. в каких стандартных реализациях простейших алгоритмов это используется? Передавать аргументы в виде значения переменной - понятно. Также более-менее ясно, зачем и в каких случаях передавать аргументы в виде указателей (урок № 35). Например, алгоритмы сортировки массива.
Вы просто умничка !! Такие понятный видео - ооочень большая редкость в интернете !! Спасибо !
Спасибо за поддержку! =)
Лиля, я с тобой полностью согласен!!!
Сергей, спасибо вам огромное!! Очень доступно объясняете. Обычно никогда не комментирую никого, но тут качество вашего труда просто супер. Продолжайте в том же духе!
Благодарю за поддержку!
Как же я рад что ваши уроки все еще актуальны) Другого такого учителя днем с огнем не найти)) Спасибо большое!
ну как, обучился?
@@xxx-vy3sv , звучит как усмешка) А что по его урокам нельзя научиться?
@@neobekker я хотел реально узнать, можно ли обучатьсч по его урокам
@@xxx-vy3sv он дает тебе базу, только то что ты будешь узать в базовых задачах. без книг, желания и серфинга в гугле. ничего не выучить.
Спасибо за урок! Понятно и лаконично.
Если с использованием прототипа функции, то можно так:
void foo(size_t = 5);
int main() {
foo();
return 0;
}
void foo(size_t a) {
for (size_t i = 0; i < a; i++)
std::cout
А, получается у меня с прототипом не работало, потому что я указал параметры по умолчанию в самой функции а не её прототипе..
спасибо, вы очень мне помогли с решением проблемы, при использовании параметров по умолчанию в классе!
Спасибо за урок! В функцию передается аргумент, а при объявлении функции используется параметр.
#параметрыпоумолчанию #SimpleCode #урокипрограммирования
Самые нужные ошибки вы исключаете сразу
Спасибо !!!!
Спасибо за разьяснение о том,что порядок следования параметров начинается с простых параметров,и только за тем,что по умолчанию!!
3 дизлайка поставили преподы из ВУЗов))))))
Уже 5...
@@articool32 хорошо, что до сих пор 5), люди меняются в лучшую сторону)
@@курсовая2019 , почему стало 7
AlexTheFox_64 дурачки всегда найдутся.
@@man6513 они накаркали
Лучший преподаватель по языку С++, я из 2023 года. Его уроки ещё актуальны)
а чё тут может быть неактуального? это же основы - синтаксис языка, а не какие-нибудь библиотеки которые со временем могут устареть 🤣
Видео понравились. Все понятно и доходчиво. Так держать, Сергей!!!
Все понятно и доходчиво.СПАСИБО!!!!!!
Спасибо за уроки! Было бы еще огромным + если бы вы в комментариях к видео давали к каждому уроку дз (пусть и не большое), чтобы каждую фишку показанную в роликах можно было тут же закрепить. Изучаю С++ по Доусону и параллельно ваши ролики.
а если из двух параметров по умолчанию, мне нужно изменить только второй ?
Лучший канал про программирование на TH-cam 👍
Если у кого-то ошибка с параметрами по умолчанию у прототипа функции, это означает что нужно все параметры указать в прототипе и потом не указывать их в самой функции!
ПРИМЕР:
void foo(int a, string b = "*"); Указываем параметр по умолчанию в прототипе
foo(10); Вызов
foo(int a, string b){ И не указываем параметр по умолчанию в самой функции
.....
}
Самый нормальный канал, самые доступные объяснения, СПАСИБО )))!
Спасибо за контент!
удобная фича кстати )),
еще раз
cout
Все понятно, благодарю
* Самые понятные, видео уроки по c++, на всём (RU) youtube *
спасибо вам огромное!! Очень доступно объясняете.
Большое спасибо за урок!
Отличное объяснение! Спасибо вам большое
Спасибо за урок!)))
привет Сергей! у меня следующий вопрос: а как правильно обращаться к функции если я хочу использовать, например, первый аргумент по умолчанию, а второй аргумент задать определенным?
Аргументы по умолчанию всегда должны идти последними. В таком случае, при вызове функции, нужно передавать только те параметры, для которых нет значений по умолчанию.
прошу прошения, я видимо некорректно сформулировал вопрос. Допустим у меня есть функция где используются три параметра и все они заданы со значениями по умолчанию ( void foo(int a=1, int b=2, int c =3)). А где-то далее в коде я вызываю эту функцию, использую первые две переменные со значениями по умолчанию а третий параметр задаю с = 5. Так вот вопрос, как правильно записать эту функцию?
Так нельзя делать.
СПАСИБО
Забыл сказать что параметры по умолчанию можно указывать только в прототипе функции, если прототип существует.
Ещё надо было добавить что не нужно дублировать дефолтные значения аргументов функции если они уже указаны в прототипе.
А мы можем задать значение, первой переменной в функции, и скажем третьей, вот пример
Void foo (int a, int b = 7, int c = 0)
Вот в этом примере задать только первой и третей а второй оставить как есть, но не задавать ту же цифру7 , а просто как ба так и оставить
Изи, смотри, как будешь вызывать функцию, в скобках присвой какое тебе надо значение для int a, второй переменной b присвой значение 0 и также присвой какое тебе надо значение для int c
Всё гениальное просто, а автору большое спасибо за его видео и труд, низкий поклон вам Сергей, обещал вам, что если стану программистом, то как следует поддержу канал, я иду к этой цели!
@@mr.warpunch6007 тогда ведь b станет равен 0. Выше был ответ на похожий комментарий и Сергей (SimpleCode) написал, что нельзя так
спасибо!
спасибо
Почему-то возникла мысль, что int по умолчанию в цикле for объявлен буквой "i" потому что в цикле выполняются итерации (iterations)
А вот интересно, что когда объявляешь сначала прототип с параметром по умолчанию, а потом в описании самой функции ниже тоже указываешь параметр по умолчанию, то пишет ошибку. Методом тыка пришел к выводу, что параметр по умолчанию нужно указывать только в прототипе, если вообще используешь прототип. Или я чет не вкурил?
плюс ))
слушай, ответь мне пожалуйста, а если я хочу пропустить второй параметр оставить по умолчанию, но поменять третий, что делать? могу так допустим написать при вызове? foo(1, ,3); что бы он оставил 2 - ой параметр как есть, а третий поменять
Поменяй их местами.
thanks
а если я хочу поменять b а (а) оставить по умолчанию |, void foo(int a = 2, double b = 3); то как
А материалы в общем на сколько часов по С++?)
👍
Сергей , как настроить постройку проэкта , без функцыи _getch(); так как в вашем случае??
Есть вопрос: допустим у меня определена функция foo(int a=2, int b=3), могу ли я обратиться к функции foo с a- по умолчанию, b - собственное значение, при этом явно не указывая а в обращении к функции?
Сказать что это просто - ничего не сказать. Можно использовать std :: bind для выполнения такой операции или в C ++ 14/17 можно использовать лямбда-функцию и выполнить то же самое. Но проще для этой цели передать в функцию массив или структуру. Как-то так )
а как создать прототип для такой функции? если у нас есть void Sum(int a = 0, int b = 0){ // код} и записать в начале кода void Sum(); компилятор ругается на отсутствие данной функции, если записать void Sum(int a = 0, int b = 0); будет ругаться на перезапись значений по умолчанию, а если записать void Sum(int a, int b ); то значения по умолчанию и все пропадают, что делать и как правильно создать такой прототип?
В прототипе функции необязательно указывать имена передаваемых в неё переменных, можно просто указать столько типов данных,
сколько мы передаём в функцию переменных, например:
void Func(int, bool);
void Func(int a, bool b) { /*body*/ }
Крч, просто пиши типы данных, без имён, и всё.
@@BadDanFeeds Спецом попробовал ваш вариант, VS2017 работает норм если функция и прототип до main но если закинуть ее за main то компилятор ругается что у него нет аргументов для передачи и по умолчанию не работает, работает только если в прототипе указать значения по умолчанию а в самой функции просто тип и переменную.
почему это не работает в онлайн компиляторах?
Почему у вас работают функции без return? Мне капилятор даёт ошибку. В чем проблема?
тип возвращаемого значения поставь void
Спс. Не знал
Поставил я себе задачу заполнить двумерный массив уникальными случайными числами. Заполнить так массив труда не составило, но вот сделать проверку на повторение не подучается. Может кто-нибудь что-то посоветовать?
//main
srand(time(NULL));
const int row = 5;
const int col = 5;
int arr[row][col];
for (int i = 0; i < row; i++) {
for (int j = 0; j < col;) {
bool alreadyhere = false;
int newRand = rand() % 25+1;
for (int k = 0; k
когда будет стрим?
Заметил, что эти параметры по умолчанию очень криво и непонятно работают с прототипами функций. Точнее вообще не работают, особенно, когда хочешь передать только 1 параметр, например из двух. Поставил функцию в начало и удалил прототип - заработало.
Сергей, попытался использовать прототип функции. При наличии дефолтных переменных в функции компилятор ругается. Подскажите пожалуйста, как быть в подобной ситуации и все же использовать прототип с параметрами по умолчанию?
А почему функция называется именно foo?
Спсб
а если скажем я не хочу вводить параметр a, но хочу ввести параметр b ??? )) тогда как быть
Указать в функции параметр b перед параметром a.
Не вполне понял, зачем на практике передавать аргументы в функцию по умолчанию? В каких случаях это нужно и удобно? Т. е. в каких стандартных
реализациях простейших алгоритмов это используется?
Передавать аргументы в виде значения переменной - понятно. Также более-менее ясно, зачем и в каких случаях передавать аргументы в виде
указателей (урок № 35). Например, алгоритмы сортировки массива.
Параметры можно задать заранее (Это для тех кто не хочет смотреть)
Гений
#include
food Официант(list Заказ = Пицца 4 сыра){
return (food(Заказ));
}
int main(){
eat = Официант(" Мне как обычно :) ");
}
Это типа прикол?
Ага, сложный прикольчик XD
Хах
А если я хочу при вызове пропустить первый параметр по умолчанию и указатб только второй?(((
смысла в очередности нет. ты же потом их внутри как хочешь используешь.
Ну что, есть отважные войны которые начали учить плюсы?
Для Source SDK Base нада нада
38 осталось 166
почему именно мои вопросы игнорят ? :/
и как правильно записать вторую строку ?
...
for (int i = 0; i < 10; i++)
for (int q = 0; q < i; q++)cout
ты просто тупой
up
Ths
a++
++