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

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

27.11.2012, 15:03. Показов 11129. Ответов 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
2 / 2 / 0
Регистрация: 27.11.2012
Сообщений: 131
30.11.2012, 11:25  [ТС]
Студворк — интернет-сервис помощи студентам
Ок, понятно))
0
 Аватар для taras atavin
4226 / 1799 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
30.11.2012, 11:41
На сколько я помню, дефалтоинт существует совсем в другом месте:
C++
1
static a;
означает
C++
1
static signed int a;
. Есть ещё auto, но оно вообще лишено смысла:
C++
1
auto a;
означает
C++
1
auto signed int a;
, но
C++
1
auto signed int a;
эквивалентно просто
C++
1
signed int a;
и вообще
C++
1
int a;
. Ещё
C++
1
signed a;
значит
C++
1
signed int a;
,
C++
1
unsigned a;
значит
C++
1
unsigned int a;
,
C++
1
small a;
означает
C++
1
signed small int a;
,
C++
1
long a;
означает
C++
1
signed long int a;
,
C++
1
signed f();
значит
C++
1
signed int f();
,
C++
1
unsigned f();
значит
C++
1
unsigned int f();
,
C++
1
small f();
означает
C++
1
signed small int f();
,
C++
1
long f();
означает
C++
1
signed long int f();
. То есть не в том случае, когда тип совсем опущен, он int, а если в длинно-составном типе опущены int и signed/unsigned, то по дефолту этот тип signed и int. И если вместе с директивами auto/static опущен тип, то он signed int. Вот только сохранено ли это в плюсах. И в источнике я не уверен. А полностью опустить тип функции на сях и плюсах просто не получится, это не бейсик. И дефолтоинту просто нет места.
1
 Аватар для Schizorb
512 / 464 / 81
Регистрация: 07.04.2012
Сообщений: 869
Записей в блоге: 1
30.11.2012, 11:49
Цитата Сообщение от koderman Посмотреть сообщение
foo1(int a, int b = 1.432, int c = 0.25);
Так написать, конечно, можно. Только параметры целочисленного типа, а ты задаешь им значения с плавающей точкой. Поэтому дробная часть "обрубится".

C++
1
2
3
4
5
6
7
8
9
10
11
#include <iostream>
 
void foo(int a, int b = 1.432, int c = 0.25)
{
    std::cout << a << " " << b << " " << c << "\n";
}
 
int main()
{
    foo(1);
}
Посмотри сам, что напечатает такой пример: 1 1 0.

a - мы передали как аргумент при вызове функции, b и c - были использованы значения по умолчанию.

Если хочешь работать с вещественными числами, используй соответствующие типы:

C++
1
void foo(int a, double b = 1.432, double c = 0.25)
Добавлено через 6 минут
Цитата Сообщение от taras atavin Посмотреть сообщение
small a;
Может short?

Цитата Сообщение от taras atavin Посмотреть сообщение
если вместе с директивами auto/static опущен тип, то он signed int. Вот только сохранено ли это в плюсах.
Именно это, видимо, не сохранено, т.к. не компилирует и требуется указать тип.
1
 Аватар для taras atavin
4226 / 1799 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
30.11.2012, 11:51
Цитата Сообщение от Schizorb Посмотреть сообщение
short?
И short тоже, но и именно small. Кроме стандартного short есть ещё мелкомягкий small, означающий "в два раза короче, чем short".
1
2 / 2 / 0
Регистрация: 27.11.2012
Сообщений: 131
30.11.2012, 12:48  [ТС]
Использование функций с одинаковыми именами. Перегрузка функций.
Если поменять местами параметры будет ли функция перегружена? Тоесть это останется одной функцией или всё-таки это две функции?
int funk(int, double); int funk(double, int);
0
 Аватар для Schizorb
512 / 464 / 81
Регистрация: 07.04.2012
Сообщений: 869
Записей в блоге: 1
30.11.2012, 13:21
Конечно, порядок параметров в списке важен. Поэтому это будут две разные функции.

Добавлено через 1 минуту
Правда можешь наткнуться на неоднозначность, скажем, если вызовешь функцию так:

C++
1
funk(4, 6);
Передаешь ей два целочисленных аргумента (они умеют неявно преобразовываться в double). Какая из перегруженных функций будет вызвана?
0
2 / 2 / 0
Регистрация: 27.11.2012
Сообщений: 131
30.11.2012, 13:55  [ТС]
Может в таких случаях надо ставить тип перед цифрами? Или как выйти из этой ситуации?
C++
1
funk(int 4,double 6);
Добавлено через 12 минут
А, ну или так делать. Если double или float то всегда ставить точку и ноль если чисел после точки нету?

C++
1
funk(4, 6.0);
Есть ведь ещё char. А в char слышал можно вносить маленькие числа.

Добавлено через 9 минут
А, ну да. если при этом при всём ещё будет функция int funk(int, int); То действительно не разберётся какую вызвать функцию.

Тоесть есть три функции допустим:

int funk(int, int);int funk(int, double); int funk(double, int);

и вызов funk(4, 6);

Какую функцию выберет? и как избежать путаницы?
0
 Аватар для Schizorb
512 / 464 / 81
Регистрация: 07.04.2012
Сообщений: 869
Записей в блоге: 1
30.11.2012, 14:10
Цитата Сообщение от koderman Посмотреть сообщение
funk(4, 6.0);
Так можно, неоднозначности избежишь. А если в качестве аргументов переменные, то типы можно явно преобразовать:
C++
1
funk(static_cast<double>(x), y);
Но лучше всего не плодить такие перегруженные функции, чтобы путаницы не было. Дальше будешь шаблоны функций изучать, увидишь что перегрузка не всегда и нужна.

Добавлено через 24 секунды
Цитата Сообщение от koderman Посмотреть сообщение
Какую функцию выберет?
Так ты скомпилировать попробуй.

Добавлено через 5 минут
Вот вызовы твоих функций:
C++
1
2
3
4
funk(1, 2);
funk(1.0, 2);
funk(1, 2.0);
funk(1.0, 2.0);
Для первых трех будет найдено точное соответствие. А последняя - неоднозначность, т.к. функции для двух даблов у нас нет.

Добавлено через 2 минуты
Цитата Сообщение от koderman Посмотреть сообщение
Есть ведь ещё char. А в char слышал можно вносить маленькие числа.
Чар это по сути и есть целочисленный тип. Просто вывод для переменных этого типа перегружен таким образом, что печатает на экране символ, а не число.
1
2 / 2 / 0
Регистрация: 27.11.2012
Сообщений: 131
30.11.2012, 14:39  [ТС]
Хе))) А как тогда совместить значения функций по умолчанию и перегрузку функций?)))
Допустим функции со значениями по умолчанию:

int AreaCube(int length, int width = 25, int height = 1);
int AreaCube(double length, int width = 25, int height = 1);
int AreaCube(float length, int width = 25, int height = 1);

и вызовы для неё без параметров))

AreaCube()
AreaCube()
AreaCube()

Добавлено через 9 минут
http://cpp.com.ru/lippman/c09.html
0
Неэпический
 Аватар для Croessmah
18150 / 10732 / 2067
Регистрация: 27.09.2012
Сообщений: 27,047
Записей в блоге: 1
30.11.2012, 14:42
Цитата Сообщение от koderman Посмотреть сообщение
А как тогда совместить значения функций по умолчанию и перегрузку функций?)))
Вам это так интересно? Делайте все по книжке, а вот когда выучите язык, будете задаваться более тонкими вопросами.
0
30.11.2012, 14:58

Не по теме:

Модераторы. Темка выходит за рамки правил форума, если что. Тут флуда будет страниц на N, предлагаю прикрыть-с.

0
2 / 2 / 0
Регистрация: 27.11.2012
Сообщений: 131
30.11.2012, 15:17  [ТС]
Рамки правил форума запрещают изучать С++?)))
Флуда было бы меньше если бы кое кто здесь не добавил его)))
0
30.11.2012, 15:25

Не по теме:

Цитата Сообщение от koderman Посмотреть сообщение
Рамки правил форума запрещают изучать С++?)))
Как минимум есть правило - один вопрос одна тема...)

0
В астрале
Эксперт С++
 Аватар для ForEveR
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
30.11.2012, 15:25
koderman, Пункт 4.4
Порядок создания тем.
На каждый вопрос создавайте по одной теме - это помогает избежать путаницы в ответах и облегчает поиск.
0
2 / 2 / 0
Регистрация: 27.11.2012
Сообщений: 131
30.11.2012, 15:30  [ТС]
Ну это да, но представьте сколько тут тем прибавится)))
Темболее тут переходит всё от темы к теме, не в разброс
0
30.11.2012, 16:33
 Комментарий модератора 
Закрыто
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
30.11.2012, 16:33

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

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
116
Закрытая тема Создать тему
Новые блоги и статьи
Транслитерация текста с кириллицы на латиницу (вариант №2)
Maks 13.11.2026
Обновленная версия ранее созданной обработки. Добавлено: - Проверка исходного текста на кириллицу, через обращение к стандартной функции "ТолькоКириллицаВСтроке" из общего модуля. . .
Часы с термометром и праздничным календарем
yariko 12.11.2026
Сегодня мы рассмотрим как можно сделать отличные многофункциональные часы. Итак, поставим конкретную задачу: разработать часы с календарем, двумя термодатчиками, выводом поздравительных сообщений. . .
Транслитерация текста с кириллицы на латиницу (вариант №1)
Maks 11.11.2026
Решил облегчить жизнь себе и коллегам админам при создании электронных почтовых ящиков для пользователей, в результате написал обработку "Транслитерация текста" с кириллицы на латиницу, а в ней. . .
Книги по геймдизайну, левел-дизайну, игровым механикам и проектированию игрового опыта
8Observer8 08.11.2026
Содержание блога | English Version 1. 2003 - 06 - Designing Virtual Worlds (1st Edition) Автор: Richard A. Bartle | Объем: 768 стр. Ссылки: Amazon . . .
Как только я захожу к себе в свою комнату я сразу же с себя снимаю свои трусы. Ответ от Джемени ИИ.
zorxor 08.11.2026
Джемени, как только я захожу к себе в свою комнату я сразу же с себя снимаю свои трусы. Многие люди, возвращаясь домой, сразу переодеваются в максимально свободную одежду или вовсе предпочитают. . .
Паттерн очереди действий/команд (Action / Command Queue). Система очереди действий и кат-сцен с SDL3 Callbacks, cglm и OpenGL
8Observer8 07.11.2026
Содержание блога | English Version Руководство для начинающих по реализации паттерна очереди действий/ команд (Action / Command Queue) на C++ (C++20) с использованием официального SDL3 Callbacks. . .
Проверка полного ФИО в типовом справочнике
Maks 07.11.2026
Решение реализовано в конфигурации КА2, на примере справочника "КонтактныеЛицаПартнеров". Задача: Запрет инициалов. Не допускаеть использование сокращений вида "И. И. ", "И. И. ", "И И" и. . .
Про "Windows must die!"
kumehtar 04.11.2026
Знаете, чет накатило. . . . Когда-то это было почти боевым кличем: мол, нормальный человек сидит на DOS, OS/ 2 или Linux, а вот это вот - Must Die. А теперь человек произносит «мастдай» с усмешкой - и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru