Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
0 / 0 / 2
Регистрация: 27.04.2015
Сообщений: 349
1

Отсутствует ";" при создании функции внутри другой функции

21.08.2016, 17:17. Показов 1144. Ответов 10
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Приветствую. Есть код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include "stdafx.h"
#include <iostream>
using namespace std;
 
 
int main()
{
    double er(double i){//здесь требует ";"
        return i*i;
    }
 double k=er(6.8);
    return 0;
}
В чём причина?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
21.08.2016, 17:17
Ответы с готовыми решениями:

Выводится ошибка: Отсутствует объявление. (при создании функции)
Задача: Спросить у человека несколько фамилий и годы их рождения. Затем... При вводе фамилии...

Вызов функции внутри другой функции с передачей локальной переменной по ссылке
Столкнулся с очень с интересной проблемой. Можно ли так делать? #include &lt;iostream&gt; using...

Как определить идентификатор функции main внутри другой функции?
Имеется ф-я, которая содержится отдельно от ф-и main void read_file(ofstream&amp; fout, lib&amp; book)...

Создание переменной внутри функции, при ее изменении внутри функции значение не меняется
Прошу объяснить, как работают глобальные переменные созданные внутри функции и ключи -Scpe -Option...

10
Хитрая блондиночка $)
1472 / 988 / 399
Регистрация: 21.12.2015
Сообщений: 3,785
21.08.2016, 17:22 2
Описывать функцию внутри другой функции обязательное условие?
1
0 / 0 / 2
Регистрация: 27.04.2015
Сообщений: 349
21.08.2016, 17:24  [ТС] 3
Нет. Но зачем выходить за пределы основной?
0
Комп_Оратор)
Эксперт по математике/физике
8949 / 4703 / 629
Регистрация: 04.12.2011
Сообщений: 13,999
Записей в блоге: 16
21.08.2016, 17:34 4
Tankist 90, так лучше не делать, но раз нужно то:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream>
using namespace std;
int main(int argc, char* argv[])
{
typedef struct  {
double operator()(double i)
{return i*i;}
    } Func;
Func squared_double;
double k=squared_double(3)+squared_double(4);
cout<<k<<endl;//25
system("pause");
return 0;
}


Добавлено через 3 минуты
Цитата Сообщение от Tankist 90 Посмотреть сообщение
Но зачем выходить за пределы основной?
Так надо.
1
0 / 0 / 2
Регистрация: 27.04.2015
Сообщений: 349
21.08.2016, 17:38  [ТС] 5
Цитата Сообщение от IGPIGP Посмотреть сообщение
раз нужно то:
О Боже... а можно закомментировать? Я структуры ещё не проходил...
0
Комп_Оратор)
Эксперт по математике/физике
8949 / 4703 / 629
Регистрация: 04.12.2011
Сообщений: 13,999
Записей в блоге: 16
21.08.2016, 17:42 6
Цитата Сообщение от Tankist 90 Посмотреть сообщение
Я структуры ещё не проходил...
Тогда то что я написал не нужно Вам. Определяйте функцию в глобальной области и будет вам компилястье.
0
829 / 253 / 34
Регистрация: 27.07.2016
Сообщений: 497
Записей в блоге: 1
21.08.2016, 17:51 7
Цитата Сообщение от Tankist 90 Посмотреть сообщение
Но зачем выходить за пределы основной?
А зачем Вам тогда вообще другая функция?
Ну, если надо, можете в лямбду сходить:
C++
1
2
3
auto er = [](double i) -> double {
   return i*i;
};
http://rextester.com/PQTWK75023
0
0 / 0 / 2
Регистрация: 27.04.2015
Сообщений: 349
21.08.2016, 19:11  [ТС] 8
Спасибо всем за ответы.Если выйти из главной функции - то работает:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include "stdafx.h"
#include <iostream>
using namespace std;
 
 
double er(double i){
    
      return i*i;
    }
int main()
{
     double k=er(2.0);
     cout<<k;
     cin.get();
     return 0;
}
0
:)
Эксперт С++
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
21.08.2016, 20:53 9
Цитата Сообщение от Tankist 90 Посмотреть сообщение
В чём причина?
В том, что в c/c++ нельзя определять функцию непосредственно внутри другой функции.
Это не паскаль.

Добавлено через 1 минуту
Цитата Сообщение от HelicopterK52 Посмотреть сообщение
можете в лямбду сходить:
Я думаю, это не очень актуально для человека, который:
Цитата Сообщение от Tankist 90 Посмотреть сообщение
структуры ещё не проходил...
1
829 / 253 / 34
Регистрация: 27.07.2016
Сообщений: 497
Записей в блоге: 1
21.08.2016, 21:02 10
Цитата Сообщение от Tulosba Посмотреть сообщение
Я думаю, это не очень актуально для человека, который
Судя по теме, функции тоже не проходил
0
:)
Эксперт С++
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
21.08.2016, 21:20 11
Цитата Сообщение от HelicopterK52 Посмотреть сообщение
Судя по теме, функции тоже не проходил
Если вынести функцию из main, то всё валидно, так что, скорее всего, просто хотел ограничить видимость (что, кстати, похвально), но не учел ограничений языка.
0
21.08.2016, 21:20
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
21.08.2016, 21:20
Помогаю со студенческими работами здесь

Остановить выполнение функции внутри другой функции
Здравствуйте. Такая проблема Реализовано следующее: при открытии страницы срабатывает функция...

Вызов функции внутри другой функции
Доброго времени суток! Есть код, которые показывают расстановку шахматных фигур на доске, и если...

Создание функции внутри другой функции
доброго времени суток. необходимо решить 3 задачи, скрипт с вычислениями поместить в файле .js, а...

При вызове функции в if ничего не выводится. Задача в создании перегруженой функции, с целью выбора пользователя
Я знаю, что в функции лонг возвращается только А, я хз как сделать и А и Б вместе, но самая большая...

Неизменность графика функции при аргументе из другой функции
Уважаемые участники! Строим, например, график x^{3} по аргументу x А теперь в качестве...

Вызов одной функции внутри другой
function sold(p,n){ alert('test'); var z=n-1; for( ;z!=-1;z--){ ...

Вызвать функцию внутри другой функции
Как вызвать функцию внутри другой функции Вот код: void __fastcall...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru