Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.95/41: Рейтинг темы: голосов - 41, средняя оценка - 4.95
2 / 2 / 0
Регистрация: 27.11.2012
Сообщений: 131

Изучаю C++ иногда бывает непонятно

27.11.2012, 15:03. Показов 9599. Ответов 115
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте. Я изучаю С++ по книжкам, по видео и прочим заметкам в интернете. Уже где-то дней 7 учу. С++ первый язык который изучаю. Сейчас читаю
Название книги: Освой самостоятельно C++ за 24 часа, 4-е издание
Автор: Либерти, Джесс, Хорват, Дэвид
Кстати хорошая книга, советую начинающим.
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
27.11.2012, 15:03
Ответы с готовыми решениями:

Почему иногда отслеживается нажатие на три клавиши сразу, а иногда нет
Доброй ночи, кто может объяснить почему иногда отслеживает нажатие на три кнопки сразу, а иногда нет. И как выйти с ситуации *( P.S. Пишу...

Openssl. Иногда вызов функций шифрования проходит нормально, иногда нет
Всем привет! Использую библиотеку openssl для шифрования / дешифрования. Генерирую ключи следующим образом: RSA...

Ошибка (иногда) Unautorized /Бывает и Forbidden 403 (или 404 - не помню)
Есть код : Dim web As New System.Net.WebClient Dim www As String = web.DownloadString("http://site.com/example.php") ...

115
29.11.2012, 17:05
Студворк — интернет-сервис помощи студентам

Не по теме:

Цитата Сообщение от taras atavin Посмотреть сообщение
проблем не вызывает при любом размере.
Как быть со сложной рекурсией?

0
 Аватар для Schizorb
512 / 464 / 81
Регистрация: 07.04.2012
Сообщений: 869
Записей в блоге: 1
29.11.2012, 17:09
Цитата Сообщение от koderman Посмотреть сообщение
Но в маленьких программах прототип можно и не применять и это будет хорошим решением.
"Определение вполне можно поместить перед вызовом функции... в таком случае прототип больше не понадобится." - это верно сказано. То есть обе проги ниже корректны:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
// прототип
int foo();
 
int main()
{
    int x = foo(); // вызов функции 
}
 
// определение ф-ции
int foo()
{
    return 7;
}
C++
1
2
3
4
5
6
7
8
9
10
// определение ф-ции
int foo()
{
    return 7;
}
 
int main()
{
    int x = foo(); // вызов функции 
}
А вот это уже ошибка:
C++
1
2
3
4
5
6
7
8
9
10
int main()
{
    int x = foo(); // вызов функции 
}
 
// определение ф-ции
int foo()
{
    return 7;
}
Теперь то, что написано в твоем первом вложении: "Функция не обязана иметь параметры, и если она их не имеет, то прототип необязателен". Это не так, неважно есть у ф-ции параметры или нет, она должна иметь прототип или определена до своего вызова.
1
2 / 2 / 0
Регистрация: 27.11.2012
Сообщений: 131
29.11.2012, 17:23  [ТС]
День прошёл не зря)))
Всё таки выяснили как надо)
0
2 / 2 / 0
Регистрация: 27.11.2012
Сообщений: 131
29.11.2012, 18:33  [ТС]
Нашёл как использовать вызов функции без параметров. К сожалению, там не показан вариант совсем без параметров, но думаю можно сделать совсем без параметров. Как сделать без параметров и без прототипа ещё не нашёл))

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
 #include <iostream> 
 
 int AreaCube(int length, int width = 25, int height = 1); 
 
int main () 
 
 {
 
 int length = 100;
 
 int width = 50;
 
 int height = 2;
 
 int area; 
 
 area = AreaCube(length, width, height);
 
 std::cout << "First time area equals " << area << "\n"; 
 
 area = AreaCube(length, width);
 
 std::cout << "Second time area equals " << area << "\n"; 
 
 area = AreaCube(length);
 
 std::cout << "Third time area equals " << area << "\n";  
 
return 0;
 
 } 
 
 int AreaCube(int length, int width, int height) 
 {
 
 return (length * width * height);
 
 }
Миниатюры
Изучаю  C++ иногда бывает непонятно   Изучаю  C++ иногда бывает непонятно  
0
2 / 2 / 0
Регистрация: 27.11.2012
Сообщений: 131
29.11.2012, 18:46  [ТС]
Результат

First area equals: 10000 Second time area equals: 5000 Third time area equals: 2500
0
545 / 344 / 12
Регистрация: 05.11.2010
Сообщений: 1,076
Записей в блоге: 1
29.11.2012, 20:39
Это цитата из книги
Такие споры решаются просто - ссылкой на стандарт. А там четко сказано, что в C++ default-int отсутствует.
0
2 / 2 / 0
Регистрация: 27.11.2012
Сообщений: 131
30.11.2012, 08:17  [ТС]
Где этот стандарт находится? Есть ли он на русском языке?
0
 Аватар для Schizorb
512 / 464 / 81
Регистрация: 07.04.2012
Сообщений: 869
Записей в блоге: 1
30.11.2012, 08:26
Цитата Сообщение от koderman Посмотреть сообщение
К сожалению, там не показан вариант совсем без параметров, но думаю можно сделать совсем без параметров
Ты понял суть данного примера? И как работают параметры по умолчанию? Если в объявлении функции будут указаны значения по умолчанию для всех параметров, то можно будет вызывать функцию совсем без аргументов. То есть, например, такую функцию:
C++
1
int AreaCube(int length = 10, int width = 25, int height = 1);
Можно будет вызвать просто как
C++
1
AreaCube();
Тогда будут использованы значения по умолчанию 10, 25 и 1. И с помощью
C++
1
return (length * width * height);
Будет возвращен результат, в данном случае, как понимаешь 250.

Добавлено через 44 секунды
Цитата Сообщение от koderman Посмотреть сообщение
Как сделать без параметров и без прототипа ещё не нашёл))
Без прототипа, или без определения функции до ее вызова - никак.
1
Неэпический
 Аватар для Croessmah
18149 / 10731 / 2067
Регистрация: 27.09.2012
Сообщений: 27,035
Записей в блоге: 1
30.11.2012, 08:30
Цитата Сообщение от koderman Посмотреть сообщение
Где этот стандарт находится? Есть ли он на русском языке?
http://alenacpp.blogspot.ru/2011/10/iso-c11.html
1
2 / 2 / 0
Регистрация: 27.11.2012
Сообщений: 131
30.11.2012, 08:35  [ТС]
Ага, понял, там хорошо объяснена эта тема. Но не указано как можно комбиниробать эти аргументы по умолчанию. Например если я хочу только первый элемент сделать по умолчанию, то придётся все элементы вместе с ним сделать такими же. Допустим если параметров больше трёх. Или например надо только 4ый, 8ой, 10ый и 12ый сделать такими. Придётся вместе с ними ещё параметры перед этими числами делать по умолчанию. Гибкость программы исчезает.
1
 Аватар для Schizorb
512 / 464 / 81
Регистрация: 07.04.2012
Сообщений: 869
Записей в блоге: 1
30.11.2012, 08:42
Цитата Сообщение от koderman Посмотреть сообщение
Придётся вместе с ними ещё параметры перед этими числами делать по умолчанию.
Ну да, параметры со значениями по умолчанию должны находиться справа от обычных параметров.

C++
1
2
foo1(int a, int b = 8, int c = 11); // корректно
foo2(int a, int b = 8, int c); // ошибка! надо задать значение для c
0
Неэпический
 Аватар для Croessmah
18149 / 10731 / 2067
Регистрация: 27.09.2012
Сообщений: 27,035
Записей в блоге: 1
30.11.2012, 09:27
Цитата Сообщение от koderman Посмотреть сообщение
Гибкость программы исчезает.
Это сугубо Ваше мнение.
0
2 / 2 / 0
Регистрация: 27.11.2012
Сообщений: 131
30.11.2012, 09:31  [ТС]
Цитата Сообщение от Герц Посмотреть сообщение
Такие споры решаются просто - ссылкой на стандарт. А там четко сказано, что в C++ default-int отсутствует.
Ошибка "C++ does not support default-int"
Вот оно как оказывается.
0
Неэпический
 Аватар для Croessmah
18149 / 10731 / 2067
Регистрация: 27.09.2012
Сообщений: 27,035
Записей в блоге: 1
30.11.2012, 09:33
Цитата Сообщение от koderman Посмотреть сообщение
Вот оно как оказывается.
Вам об этом уже не раз писали
0
2 / 2 / 0
Регистрация: 27.11.2012
Сообщений: 131
30.11.2012, 09:42  [ТС]
Говорят ещё можно компилятор настроить чтобы он компилировал как С, а у С есть default int
0
Неэпический
 Аватар для Croessmah
18149 / 10731 / 2067
Регистрация: 27.09.2012
Сообщений: 27,035
Записей в блоге: 1
30.11.2012, 09:44
Цитата Сообщение от koderman Посмотреть сообщение
компилировал как С
Тогда это будет программа на языке Си, а не на Си++
0
2 / 2 / 0
Регистрация: 27.11.2012
Сообщений: 131
30.11.2012, 11:16  [ТС]
Такой вариант возможен?

foo1(int a, int b = 1,432, int c = 0,25);

Тоесть подставлять float параметры? Ведь int в прототипе ставится наверное только для тех чисел которые задаются в программе внутри фигурных скобок?
0
545 / 344 / 12
Регистрация: 05.11.2010
Сообщений: 1,076
Записей в блоге: 1
30.11.2012, 11:20
Так вообще нельзя, разделитель - точка. В остальном - кто мешает тебе проверить самому? :-)
0
2 / 2 / 0
Регистрация: 27.11.2012
Сообщений: 131
30.11.2012, 11:23  [ТС]
foo1(int a, int b = 1.432, int c = 0.25);
0
3258 / 2060 / 351
Регистрация: 24.11.2012
Сообщений: 4,909
30.11.2012, 11:25
Целочисленной переменной присваиваем значение с плавающей точкой? Круто.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
30.11.2012, 11:25
Помогаю со студенческими работами здесь

При запуске браузера открывается nftds.ru, иногда бывает что по 2 -3 стр одновременно.
При запуске браузера открывается nftds.ru, иногда бывает что по 2 -3 стр одновременно. Такая ситуация у меня уже неделю. Я провела сбор...

Почему в google по неизвестному возрасту иногда бывает существенно выше показов, чем по другим возрастам, при этом очень
Коллеги, может кто знает почему в гугле по неизвестному возрасту иногда бывает существенно выше показов, чем по другим возрастам, при этом...

Синие экраны бывает месяц нету, бывает каждый день
Забадал BSOD

Mozilla бывает открывает вкладку лишнюю, бывает отдельно окно
Браузер Mozilla бывает открывает дополнительную вкладку, хотя я делаю действия совсем даже не направленные на это. Также может...

Иногда грузится процессор непонятно чем, как посмотреть чем грузится?
Скорее всего вы скажете что мой вопрос тупой. Но порой у всех бывают такие случаи, когда в простое непонятно что работает и грузит в первую...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
100
Закрытая тема Создать тему
Новые блоги и статьи
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если. . .
Доступность команды формы по условию
Maks 07.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: сделать доступной кнопку (команда формы "ЗавершитьСписание") при. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru