Форум программистов, компьютерный форум CyberForum.ru

Вопрос по определению типа переменной - C++

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 5.00
Heidel
 Аватар для Heidel
110 / 110 / 7
Регистрация: 11.10.2011
Сообщений: 647
24.10.2011, 14:44     Вопрос по определению типа переменной #1
В основной программе вычисляется с
C++
1
2
3
c = p (9)/h (3, z) + p (4); //Âû÷èñëåГ*ГЁГҐ Г±. Âûçîâ ðåêóðñèâГ*ûõ ГґГіГ*êöèé p ГЁ h
cout << "c="<< c << endl;
cout <<"\n" ;
Для её вычисления вызываются две рекурсивные функции

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
// ÐåêóðñèâГ*Г*Гї ГґГіГ*êöèÿ äëÿ âû÷èñëåГ*ГЁГї p
double p (int i) 
{
    if (i==1)
        return cos (1);
    if (i==2)
        return -sin (1);
    if (i>=3)
        return (2*p (i-1) - p (i-2));
    return EXIT_SUCCESS;
}
 
// ÐåêóðñèâГ*Г*Гї ГґГіГ*êöèÿ äëÿ âû÷èñëåГ*ГЁГї h
double h (int i, int z)
{
    if (i==1)
        return 0.5;
    if (i==2)
        return sin (0.5);
    if (i>=3)
        return (z*h (i-1, z) + h (i-2,z));
    return EXIT_SUCCESS;
}
Вопрос в том, что при вычислении с её тип нигде не указан, а при попытке указать
C++
1
double c;
или
C++
1
double c= p (9)/h (3, z) + p (4);
пишет error C2086: 'c' : redefinition

Что неправильно?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.10.2011, 16:42     Вопрос по определению типа переменной
Еще ссылки по теме:

C++ Вопрос об области видимости переменной
Объявление переменной своего типа C++
C++ Шаблон типа переменной

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

Или воспользуйтесь поиском по форуму:
Chelioss
179 / 179 / 4
Регистрация: 08.01.2011
Сообщений: 1,131
27.10.2011, 16:42     Вопрос по определению типа переменной #21
Цитата Сообщение от taras atavin Посмотреть сообщение
Обязательно. Если ты хочешь вернуть значение другого, но совместимого типа, то его обязательно надо преобразовать к типу самой функции. Хоть неявно, но обязательно. Не веришь - попробуй вернуть значение типа без обратной совместимости (то есть чтоб тип значения приводился к типу функции, а наоборот - нет), а в вызывающей функции присвоить его переменной типа самого значения. Или попробуй вернуть значение, тип которого может быть приведён к типу функции только явно.
http://lurkmore.ru/images/thumb/0/0b...inFacepalm.png
Вы написали то же самое, что и я. ( про совместимость )
Цитата Сообщение от taras atavin Посмотреть сообщение
Он то понял, а ты нет.
А вы уверены, что сами поняли?
1) функция не может возвратить тип, отличный от типа, указанного в заголовке функции. Если это он имел ввиду, то он просто сам капитан очевидность.
2) Если он имел ввиду, что значение, которое мы указываем после ключевого слова return, должно быть такого же типа, что и указанного в заголовке функции, то как можно написать значение одновременно того же типа, указанного в заголовке функции, и типа, которое неявно преобразуется в тип, указанного в заголовке?
Тут либо одно:
C++
1
2
3
4
int f ()
{ 
  return 0; // int
}
Либо другое:
C++
1
2
3
4
int f()
{
 return 0.0; // неявное преобразование
}
Он написал, что эти два случая могут проявится в одном. Это же надо до такого додуматься.

Добавлено через 32 минуты
Все, понял, что он имел в виду. Это я не так понял. Но относительно facepalm'a это ничего не меняет
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Yandex
Объявления
27.10.2011, 16:42     Вопрос по определению типа переменной
Ответ Создать тему
Опции темы

Текущее время: 08:07. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru