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

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

27.11.2012, 15:03. Показов 9994. Ответов 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 / 1796 / 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 / 1796 / 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
18149 / 10731 / 2067
Регистрация: 27.09.2012
Сообщений: 27,038
Записей в блоге: 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
Закрытая тема Создать тему
Новые блоги и статьи
Сезонность и суточность закисления почв
anaschu 04.07.2026
200 часов это все равно моловато. Есть ситуации, но нестандартные, когда смена происходит за 5 лет. Но обычно это 50 лет и более. Наверное, закисление почвы происходит сезонно в средней. . .
В чем ценность человеческого опыта в глобальном смысле?
kumehtar 03.07.2026
Возможно, ценность человека не в том, что он однажды достигает мудрости, а в том, что он становится носителем карты пути. Он знает не только истину, но и последовательность внутренних изменений,. . .
интеграция AnyLogic с самописным REST API и переход на Odoo
anaschu 03.07.2026
Успешная интеграция AnyLogic с самописным REST API и переход на промышленную Odoo WMS Сегодня проделал огромный путь от простой симуляции физических процессов до построения полноценной. . .
Поиск всех путей на ориентированном графе. Linux
dcc0 02.07.2026
Переработка старого кода из моей статьи. Через несколько переработок от PHP кода к C89 (надеюсь, 89). Но довольно запутанно получилось. Код для Linux. Но если убрать time и то, что с ним. . .
Сам себя обучал rest api
anaschu 02.07.2026
Педагогический лайфхак: Почему чистый REST API для ученика намного круче, чем готовые библиотеки Когда мы отказались от капризного JAR-файла AnyLogic и переписали код на стандартный HttpClient,. . .
rest api anylogic - выполнение модели на своём русском сайте
anaschu 02.07.2026
Как подружиться с AnyLogic Cloud API, победить провайдеров и развернуться Java-бэкенд в Docker на бесплатном хостинге: Двухдневный лог борьбы Всем привет! Хочу поделиться свежим (и довольно. . .
Где деньги лежат
kumehtar 02.07.2026
Это - японская подводная лодка I-52 (тип C2, кодовое имя Momi) вышла из Японии в марте 1944 года с миссией в оккупированную немцами Францию (Лорьян). Это была одна из «Янаги»-миссий по обмену. . .
Krabik для WoW 3.3.5a, многоязычный
AmbA 02.07.2026
Допилил бота, думаю что окончательно. Изменения: - добавлена многоязычность - добавлено снятие скриншотов - добавлено поддержание бафов хождения по воде (для жреца, дк и шамана) - и так, по. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru