Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 39, средняя оценка - 4.95
koderman
2 / 2 / 1
Регистрация: 27.11.2012
Сообщений: 131
#1

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

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

Здравствуйте. Я изучаю С++ по книжкам, по видео и прочим заметкам в интернете. Уже где-то дней 7 учу. С++ первый язык который изучаю. Сейчас читаю
Название книги: Освой самостоятельно C++ за 24 часа, 4-е издание
Автор: Либерти, Джесс, Хорват, Дэвид
Кстати хорошая книга, советую начинающим.
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.11.2012, 15:03
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Изучаю C++ иногда бывает непонятно (C++):

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

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

Почему иногда функции передается значение int, а иногда - нет? - C++
1 случай: void Function_1(int* & rVarOne, int* &rVarTwo) { /* Какие-то операции с указателями: rVarOne++; *rVarOne =...

Изучаю с++ - C++
Я начал учить с++ до этого выучил php,js. Но есть пару вопросов например создание папки с помощью windows команды *MD* вот как это...

изучаю классы - C++
Начал изучать класс. Вот использую коструктор, но не пойму где ошибка. файл.h #include "stdafx.h" #include <iostream> using...

Изучаю классы, что-то не выходит - C++
Здравствуйте! #include <iostream.h> class zerkalo { private: int Width, Length; public:

115
taras atavin
3570 / 1754 / 91
Регистрация: 24.11.2009
Сообщений: 27,567
29.11.2012, 16:44 #76
Цитата Сообщение от koderman Посмотреть сообщение
"В небольших программах это является хорошим решением"))
О чём это? Не рви контекст.

Добавлено через 5 минут
Цитата Сообщение от ForEveR Посмотреть сообщение
Лямбды они конечно не функции, но выглядят именно так. Ну или boostовский local_function
не путай функции с данными, в которых запоминается, какие именно функции ты собираешься вызывать. Вызов функции по указателю на функцию тоже выглядит как обычный вызов функции, сам указатель может быть локальным, но в паскале соответствует не
Pascal
1
2
3
4
5
6
7
8
procedure p1(var x:integer);
procedure p2(var x:integer);
begin
        x:=2;
end;
begin
        p2(x);
end;
, а
Pascal
1
2
3
4
5
6
7
8
9
10
procedure p2(var x:integer);
begin
        x:=2;
end;
procedure p1(var x:integer);
var p:procedure(var x:integer);
begin
        p:=p2;
        p(x);
end;
, процедурным переменным, а не локальным функциям.
0
koderman
2 / 2 / 1
Регистрация: 27.11.2012
Сообщений: 131
29.11.2012, 16:50  [ТС] #77
Цитата Сообщение от ValeryS Посмотреть сообщение
конечно нет
Тогда вопросы к Автор: Либерти, Джесс, Хорват, Дэвид )))
ибо
0
Миниатюры
Изучаю  C++ иногда бывает непонятно  
koderman
2 / 2 / 1
Регистрация: 27.11.2012
Сообщений: 131
29.11.2012, 16:52  [ТС] #78
Цитата Сообщение от taras atavin Посмотреть сообщение
О чём это? Не рви контекст.
Контекст не порван. Прототип применяют для удобства чтобы не запутаться. Но в маленьких программах прототип можно и не применять и это будет хорошим решением. Именно это там сказано.
0
ValeryS
Модератор
6729 / 5138 / 484
Регистрация: 14.02.2011
Сообщений: 17,245
29.11.2012, 16:58 #79

Не по теме:

Цитата Сообщение от koderman Посмотреть сообщение
Тогда вопросы к Автор: Либерти, Джесс, Хорват, Дэвид )))
цитата (почти дословно)
"До каких пор Вы будете верить всему, что написано?"(с) Д. Гранин " Иду на грозу"



Добавлено через 1 минуту
Цитата Сообщение от koderman Посмотреть сообщение
Прототип применяют для удобства чтобы не запутаться.
Прототип применяют чтобы компилятор знал при вызове, что есть такая функция
0
taras atavin
3570 / 1754 / 91
Регистрация: 24.11.2009
Сообщений: 27,567
29.11.2012, 16:58 #80
Контроль порядка функций проблем не вызывает при любом размере. Дело совсем в другом: по мере роста количества функций разработка программы, в которой учитывается порядок их размещения, замедляется из-за расхода времени на сортировку функций вставкой и монотонно возрастающей зависимости этого времени от количества сортируемых элементов. Не сложность контроля растёт, а количество рутины. Но вывод тот же: если прога большая, то все функции должны быть с прототипами. В маленькой же программе можно заранее спланировать порядок размещения функций и вообще не тратить время на их сортировку, а набор прототипов - это лишние ручные операции, замедляющие разработку. В таких программах можно рекомендовать избегать прототипов.
0
Croessmah
29.11.2012, 17:05
  #81

Не по теме:

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

0
Schizorb
510 / 462 / 16
Регистрация: 07.04.2012
Сообщений: 869
Записей в блоге: 1
Завершенные тесты: 1
29.11.2012, 17:09 #82
Цитата Сообщение от 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
koderman
2 / 2 / 1
Регистрация: 27.11.2012
Сообщений: 131
29.11.2012, 17:23  [ТС] #83
День прошёл не зря)))
Всё таки выяснили как надо)
0
koderman
2 / 2 / 1
Регистрация: 27.11.2012
Сообщений: 131
29.11.2012, 18:33  [ТС] #84
Нашёл как использовать вызов функции без параметров. К сожалению, там не показан вариант совсем без параметров, но думаю можно сделать совсем без параметров. Как сделать без параметров и без прототипа ещё не нашёл))

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);
 
 }
0
Миниатюры
Изучаю  C++ иногда бывает непонятно   Изучаю  C++ иногда бывает непонятно  
koderman
2 / 2 / 1
Регистрация: 27.11.2012
Сообщений: 131
29.11.2012, 18:46  [ТС] #85
Результат

First area equals: 10000 Second time area equals: 5000 Third time area equals: 2500
0
Герц
524 / 341 / 4
Регистрация: 05.11.2010
Сообщений: 1,077
Записей в блоге: 1
29.11.2012, 20:39 #86
Это цитата из книги
Такие споры решаются просто - ссылкой на стандарт. А там четко сказано, что в C++ default-int отсутствует.
0
koderman
2 / 2 / 1
Регистрация: 27.11.2012
Сообщений: 131
30.11.2012, 08:17  [ТС] #87
Где этот стандарт находится? Есть ли он на русском языке?
0
Schizorb
510 / 462 / 16
Регистрация: 07.04.2012
Сообщений: 869
Записей в блоге: 1
Завершенные тесты: 1
30.11.2012, 08:26 #88
Цитата Сообщение от 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
Ушел
Эксперт CЭксперт С++
13557 / 7707 / 872
Регистрация: 27.09.2012
Сообщений: 18,996
Записей в блоге: 3
Завершенные тесты: 1
30.11.2012, 08:30 #89
Цитата Сообщение от koderman Посмотреть сообщение
Где этот стандарт находится? Есть ли он на русском языке?
http://alenacpp.blogspot.ru/2011/10/iso-c11.html
1
koderman
2 / 2 / 1
Регистрация: 27.11.2012
Сообщений: 131
30.11.2012, 08:35  [ТС] #90
Ага, понял, там хорошо объяснена эта тема. Но не указано как можно комбиниробать эти аргументы по умолчанию. Например если я хочу только первый элемент сделать по умолчанию, то придётся все элементы вместе с ним сделать такими же. Допустим если параметров больше трёх. Или например надо только 4ый, 8ой, 10ый и 12ый сделать такими. Придётся вместе с ними ещё параметры перед этими числами делать по умолчанию. Гибкость программы исчезает.
1
30.11.2012, 08:35
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.11.2012, 08:35
Привет! Вот еще темы с ответами:

Бывает ли у вас такое - C++
Вообщем У меня происходят полтергейсты на компиляторе g++ Бывает так, чтобы прога упорно не работает правильно, чтобы я не...

Ооп. Изучаю основы, обьясните на примере - C++
Класс: форум - сайт для общения. Объект форум - собственно любой форум. Тут все понятно. Форумный движок тоже класс, соответственно...

В общем изучаю маленько как кодить в ТС, и вот такая шляпа - C++
#include &lt;stdio.h&gt; #include &lt;math.h&gt; #include &lt;conio.h&gt; int main() { float a,x,i,c,f,s; clrscr(); printf(&quot;...

Изучаю классы объектов, ошибок куча, работаю над квадратами, выручайте - C++
/* Л.Р. №2 Классы объектов. На вход подается некоторое количество квадратов (координаты вершин). Отсортировать и вывести их по...


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

Или воспользуйтесь поиском по форуму:
90
Закрытая тема Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.