обьясните, как это работает
1 #include <iostream.h>
2 long asd(int);
3 int main()
4 {
5 int var=5;
6 cout << asd(var) << "\n";
7 return 0;
8 }
9 long asd(int x)
10 {
11 return x*x;
12 }
в книге как-то лихо сменили тему, пару раз перечитал, ответа не нашел.
спасибо
вопрос начинающего по С++ (обьясните, как это работает...)
Модератор: Модераторы разделов
-
sedition
- Сообщения: 556
- ОС: Gentoo/MacOSX/Windows Vista
вопрос начинающего по С++
Спасибо!
-
Hvzh
- Сообщения: 711
- Статус: Gone with Linux
- ОС: Linux Mint 18.1
Re: вопрос начинающего по С++
1 #include <iostream.h> //хидер для того, чтобы можно было использовать cout
2 long asd(int); //предварительное объявление функции
3 int main() //начало основной функции
4 {
5 int var=5; //задаем переменную var, равную 5
6 cout << asd(var) << "\n"; //и печатаем результат работы функции asd, передавая ей в качестве аргумента var
7 return 0; //возврат в систему
8 }
9 long asd(int x) //реализация функции var (принимает один аргумент типа int и возвращает long)
10 {
11 return x*x; // вычисляем квадрат переданного аргумента и возвращаем результат
12 }
2 long asd(int); //предварительное объявление функции
3 int main() //начало основной функции
4 {
5 int var=5; //задаем переменную var, равную 5
6 cout << asd(var) << "\n"; //и печатаем результат работы функции asd, передавая ей в качестве аргумента var
7 return 0; //возврат в систему
8 }
9 long asd(int x) //реализация функции var (принимает один аргумент типа int и возвращает long)
10 {
11 return x*x; // вычисляем квадрат переданного аргумента и возвращаем результат
12 }
HP 255 G4 A6-6310 + Linux Mint 18.1 + Windoze7 under VmWare + OS X Mavericks under VmWare
-
sedition
- Сообщения: 556
- ОС: Gentoo/MacOSX/Windows Vista
-
Hvzh
- Сообщения: 711
- Статус: Gone with Linux
- ОС: Linux Mint 18.1
Re: вопрос начинающего по С++
строка
long asd(int);
является ПРЕДВАРИТЕЛЬНЫМ объявлением функции. Если еще раз посмотреть на код, то видно, что функция asd вызывается в функции main ДО ТОГО, как была реально определена. А int там для того, чтобы компайлер знал количество аргументов в этой функции. Если бы их было несколько, то объява могла выглядеть, как
long asd(int, int, long);
например. Это для случая трех аргументов - двух интов и одного лонга. А вообще без такого предварительного аргумента можно обойтись, если функция определена в тексте программы раньше ее первого вызова из какой-либо другой функции. В Вашем случае это выглядело бы так:
#include <iostream.h>
long asd(int x)
{
return x*x;
}
int main()
{
int var=5;
cout << asd(var) << "\n";
return 0;
}
HP 255 G4 A6-6310 + Linux Mint 18.1 + Windoze7 under VmWare + OS X Mavericks under VmWare
-
newguy
- Сообщения: 9
Re: вопрос начинающего по С++
long asd(int); //это прототип функции, здесь указано что функция возвращает тип long int
// и принимает тип int
А вообще что за книгу изучаеш ? Попробуй что-нибудь для новичков, что-бы таких вопросов не задавать - дальше будет сложнее.
// и принимает тип int
А вообще что за книгу изучаеш ? Попробуй что-нибудь для новичков, что-бы таких вопросов не задавать - дальше будет сложнее.
-
sedition
- Сообщения: 556
- ОС: Gentoo/MacOSX/Windows Vista
Re: вопрос начинающего по С++
спасибо, все понял.
книга С.В.Глушаков А.В.Коваль С.В.Смирнов - Язык програмирования С++
кстати книга впринципе ничего
книга С.В.Глушаков А.В.Коваль С.В.Смирнов - Язык програмирования С++
кстати книга впринципе ничего
Спасибо!
-
serzh-z
- Бывший модератор
- Сообщения: 8259
- Статус: Маньяк
- ОС: Arch, Fedora, Ubuntu
Re: вопрос начинающего по С++
Увы, увы,.. как-то так сложилось, что среди русскоязычных книжных авторов от программирования вообще нет никого (подобных той же "банде четырех" и множеству других), кого стоило бы читать. <_<
-
newguy
- Сообщения: 9
Re: вопрос начинающего по С++
Никогда такой не видел. Для меня лучшей книгой для начала была "C++ за 21 день" Локвуда.
Вроде название как С++ для чайников, но описано там все по-человечески, после прочтения непоняток нет.
-
serzh-z
- Бывший модератор
- Сообщения: 8259
- Статус: Маньяк
- ОС: Arch, Fedora, Ubuntu
-
d_Sun
- Сообщения: 291
Re: вопрос начинающего по С++
Моя подпись сильно длинная :)
-
kiedd
- Сообщения: 9
- ОС: ASPLinux 11
Re: вопрос начинающего по С++
Неплохая книга по C++ - Thinking in C++, автор Bruce Eckel. На русском языке доступна как Философия C++.
-
d_Sun
- Сообщения: 291
-
Hvzh
- Сообщения: 711
- Статус: Gone with Linux
- ОС: Linux Mint 18.1
Re: вопрос начинающего по С++
Ну ты и дал пример! Она же отнюдь не для новичков, которые int от long отличить не могут!
HP 255 G4 A6-6310 + Linux Mint 18.1 + Windoze7 under VmWare + OS X Mavericks under VmWare
-
sedition
- Сообщения: 556
- ОС: Gentoo/MacOSX/Windows Vista
Re: вопрос начинающего по С++
Спасибо!