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

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

27.11.2012, 15:03. Показов 9436. Ответов 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,035
Записей в блоге: 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 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru