Zakat 6 / 6 / 1 Регистрация: 24.12.2012 Сообщений: 150 |
||||||||
1 |
||||||||
Тип возвращаемого значения не соответствует типу функции03.06.2014, 18:02. Показов 27160. Ответов 5 Метки нет (Все метки)
здесь после каждой функции стоит » ; » поэтому тему так назвал, не понимаю, если » ; » не ставить ошибка, мол требуется » ; « Добавлено через 1 минуту
возникает ошибка соответствия типов, переписываю код с борланда, но там тоже не идет…
__________________
0 |
Don’t worry, be happy 17784 / 10550 / 2036 Регистрация: 27.09.2012 Сообщений: 26,536 Записей в блоге: 1 |
|
03.06.2014, 18:03 |
2 |
если » ; » не ставить ошибка, мол требуется » ; « значит где-то до этого не поставили или еще чего. Код показывайте Добавлено через 28 секунд
здесь после каждой функции стоит » ; « а не должно стоять
0 |
ExModE 2 / 2 / 3 Регистрация: 04.03.2011 Сообщений: 27 |
||||
03.06.2014, 18:07 |
3 |
|||
0 |
Zakat 6 / 6 / 1 Регистрация: 24.12.2012 Сообщений: 150 |
||||
03.06.2014, 18:20 [ТС] |
4 |
|||
значит где-то до этого не поставили или еще чего. Код показывайте ну уж если бы забыл перед функцией воткнуть то это было бы видно
причем это только в 38 строке скобка » { » подсвечивается
0 |
Don’t worry, be happy 17784 / 10550 / 2036 Регистрация: 27.09.2012 Сообщений: 26,536 Записей в блоге: 1 |
|
03.06.2014, 18:24 |
5 |
функции из main уберите
1 |
6 / 6 / 1 Регистрация: 24.12.2012 Сообщений: 150 |
|
03.06.2014, 18:27 [ТС] |
6 |
О_о error C2601: недопустимые локальные переменные функций Добавлено через 1 минуту
0 |
Я начал изучать C ++ несколько дней назад, и теперь я пытаюсь сделать свою первую программу — приложение «телефонной книги». Появятся имена людей, которых я знаю, я введу имя человека, которому нужен номер, и появится их номер.
Но сейчас я некоторое время отлаживаю и до сих пор не понимаю, что не так с моим кодом! Я уверен, что это очевидно, но я слишком новичок, чтобы понять это.
#include <stdafx.h> // Visual Studio users need to uncomment this line
#include <iostream>
int nameAppears()
{
std::cout << "Alex" << std::endl;
std::cout << "Andre" << std::endl;
std::cout << "Guy" << std::endl;
std::cout << "Grand-ma" << std::endl;
std::cout << "Grand-pa" << std::endl;
std::cout << "Jérémy" << std::endl;
std::cout << "Manon" << std::endl;
std::cout << "Nathalie" << std::endl;
std::cout << "Stéphanie" << std::endl;
std::cout << "Oliver" << std::endl;
}int enterName()
{
std::cout << "Enter the name you wish to obtain the number:";
int name;
std::cin >> name;
return name;
}int link(name)
{
if (name == "Alex")
return "586 6532";
if (name == "Andre")
return "569 8522";
if (name == "Guy")
return "850 6589";
if (name == "Grand-ma")
return "482 4875";
if (name == "Grand-pa")
return "453 9963";
if (name == "Jérémy")
return "654 3828";
if (name == "Manon")
return "965 4541";
if (name == "Nathalie")
return "770 6916";
if (name == "Stéphanie")
return "546 5482 ";
if (name == "Oliver")
return "246 5554";
}int printNumber (int number)
{
std::cout << "The number is: " << number << std::endl;
}int main()
{
//Make all the names appear
nameAppears();
//Get User's input
int name = enterName();
//Link Name to number
int number = link(name);
//Print the desired number
printNumber(number);
}
Вот список всех ошибок, которые я получил при компиляции в Visual Studio 2013:
- «не могу открыть исходный файл» stdafx.h «»
- «идентификатор» имя «не определено» (2 раза подряд)
- «тип возвращаемого значения не соответствует типу функции» (10 раз подряд)
- «» имя «: необъявленный идентификатор»
- «» ссылка: инициализатор в стиле функции выглядит как определение функции «
- «Термин не относится к функции, принимающей 1 аргумент»
-1
Решение
Когда начать?
В вашей функции:
int enterName()
{
std::cout << "Enter the name you wish to obtain the number:";
int name;
std::cin >> name;
return name;
}
Пользователь должен вставить название но тип name
переменная была объявлена как int
(который является типом для целое число число). Мой вопрос сейчас: почему имя человека должно кодироваться как число?
Как это решить?
Просто используя строка тип.
#include <string> // You have to include this header to use string object
// ...
std::string enterName()
{
std::cout << "Enter the name you wish to obtain the number:";
std::string name;
std::cin >> name;
return name;
}
Примечание: есть много соображений о том, как получить строку из стандартного ввода, но я не ваш учитель C ++, и в вашем случае я думаю, что аргумент очень далек от ваших навыков сейчас.
Другая проблема здесь:
int link(name)
{
// do something ...
}
В вашей функции объявления name
не имеет типа. Это ошибка! Переменная должна иметь тип в качестве аргумента.
Кроме того, ваша функция тела возвращает «строка» тип:
return "965 4541"; // return a const char[]
Так почему вы объявили, что ваша функция возвращает int
тип?
Правильная форма:
std::string link(const std::string& name) // declaration signature
Даже в этой функции тип неправильный:
int printNumber (int number)
{
std::cout << "The number is: " << number << std::endl;
}
Так должно быть:
void printNumber (const std::string& number)
{
std::cout << "The number is: " << number << std::endl;
}
void
как возвращаемый тип, потому что ваша функция ничего не возвращает.
Я вижу недостаток ваших базовых навыков в отношении языка. Я предлагаю вам изучить хорошую книгу по C ++ и начать с нее кодирование.
1
Другие решения
-
«идентификатор» имя «не определено» вы не объявляете имя переменной внутри ссылки на функцию, правильным является
int main (string name)
тебе это нужноstring
, -
«тип возвращаемого значения не соответствует типу функции», используя в качестве примера функцию
int link(string name)
, если вы хотите вернуть номер телефона, или вы вернете его как 8506589 (без пробелов), или вы измените тип возврата на строку, чтобы он считал строку и принимал такие вещи, как — или пробел.
3 — Нет необходимости в заголовке stdafx, удалите эту строку и Google для понимания больше об этом.
4 — Вы объявили имя как int, вы должны были объявить как строку.
Чувак, в твоем коде так много проблем, что ты должен подумать о том, чтобы сходить на некоторые видео на YouTube, если ты пытаешься самостоятельно изучить и сначала посмотреть видео для программирования на c, попробуй потом видео из Нью-Бостона … Я помог с несколькими твоими ошибками.
0
На чтение 4 мин Просмотров 1.3к. Опубликовано 31.07.2019
Содержание
- Решение
- Как это решить?
- Правильная форма:
- Другие решения
Я начал изучать C ++ несколько дней назад, и теперь я пытаюсь сделать свою первую программу — приложение «телефонной книги». Появятся имена людей, которых я знаю, я введу имя человека, которому нужен номер, и появится их номер.
Но сейчас я некоторое время отлаживаю и до сих пор не понимаю, что не так с моим кодом! Я уверен, что это очевидно, но я слишком новичок, чтобы понять это.
Вот список всех ошибок, которые я получил при компиляции в Visual Studio 2013:
- «не могу открыть исходный файл» stdafx.h «»
- «идентификатор» имя «не определено» (2 раза подряд)
- «тип возвращаемого значения не соответствует типу функции» (10 раз подряд)
- «» имя «: необъявленный идентификатор»
- «» ссылка: инициализатор в стиле функции выглядит как определение функции «
- «Термин не относится к функции, принимающей 1 аргумент»
Решение
В вашей функции:
Пользователь должен вставить название но тип name переменная была объявлена как int (который является типом для целое число число). Мой вопрос сейчас: почему имя человека должно кодироваться как число?
Как это решить?
Просто используя строка тип.
Примечание: есть много соображений о том, как получить строку из стандартного ввода, но я не ваш учитель C ++, и в вашем случае я думаю, что аргумент очень далек от ваших навыков сейчас.
Другая проблема здесь:
В вашей функции объявления name не имеет типа. Это ошибка! Переменная должна иметь тип в качестве аргумента.
Кроме того, ваша функция тела возвращает «строка» тип:
Так почему вы объявили, что ваша функция возвращает int тип?
Правильная форма:
Даже в этой функции тип неправильный:
Так должно быть:
void как возвращаемый тип, потому что ваша функция ничего не возвращает.
Я вижу недостаток ваших базовых навыков в отношении языка. Я предлагаю вам изучить хорошую книгу по C ++ и начать с нее кодирование.
Другие решения
«идентификатор» имя «не определено» вы не объявляете имя переменной внутри ссылки на функцию, правильным является int main (string name) тебе это нужно string ,
«тип возвращаемого значения не соответствует типу функции», используя в качестве примера функцию int link(string name) , если вы хотите вернуть номер телефона, или вы вернете его как 8506589 (без пробелов), или вы измените тип возврата на строку, чтобы он считал строку и принимал такие вещи, как — или пробел.
3 — Нет необходимости в заголовке stdafx, удалите эту строку и Google для понимания больше об этом.
4 — Вы объявили имя как int, вы должны были объявить как строку.
Чувак, в твоем коде так много проблем, что ты должен подумать о том, чтобы сходить на некоторые видео на YouTube, если ты пытаешься самостоятельно изучить и сначала посмотреть видео для программирования на c, попробуй потом видео из Нью-Бостона … Я помог с несколькими твоими ошибками.
#include «stdafx.h»
#include
#include
#include «iostream»
void fun(int);
using namespace std;
void main()
<
int number;
setlocale(LC_ALL, «»);
printf(«введите число
«);
cin >> number;
do <
if (!cin) <
printf(» ошибка ввода:
«);
cin.clear();
cin.ignore(INT_MAX, ‘
‘);
>
fun(number);
>
void fun(int number)
<
int tmp1;
int tmp2;
tmp1 = number % 10; //5
tmp2 = number / 10;
/*if(tmp2 > 0)
if (tmp2 == 0)
<
exit(EXIT_SUCCESS);
>
fun(tmp2);
system(«pause»);
return 0;
Здравствуйте, читаю книгу Герберта Шилдта «Руководство для начинающих».
Есть такой пример :
В функции f(int): 10
В функции f(double): 10.1
В функции f(short): 99
В функции f(double): 11.5
В конце главы проводится проверка знаний и есть такой вопрос:
Учитывается ли тип значения, возвращаемого функцией, в решении о выборе нужной версии перегруженной функции?
Ниже на него есть ответ:
Нет, типы значений, возвращаемых функциями, могут различаться, но это различие не влияет на решение о выборе нужной версии.
Собственно у меня и появился вопрос, почему не учитывается тип данных для выбора версии перегруженной функции, когда после приведения к типу double из float и происходит выбор функции f(double x)?
- Распечатать
Оцените статью:
- 5
- 4
- 3
- 2
- 1
(0 голосов, среднее: 0 из 5)
Поделитесь с друзьями!