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

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

Войти
Регистрация
Восстановить пароль
 
ajohnny
0 / 0 / 0
Регистрация: 24.07.2015
Сообщений: 22
#1

Не работает функция error() - C++

03.09.2015, 08:07. Просмотров 488. Ответов 1
Метки нет (Все метки)

Выполняю код программки из учебника в Visual C++ 2010:


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
#include "../../../std_lib_facilities.h"
 
int area(int length, int width)
{
if (length<=0 || width <=0) return -1;
return length*width;
}
 
int framed_area(int x, int y)
{
const int frame_width = 2;
 
if(x-frame_width<=0 || y-frame_width<=0)
 error("non-positive area() argument called by framed_area()");
 
return area(x-frame_width,y-frame_width);
}
 
int f(int x, int y, int z)
{
int area1 = area(x,y);
if (area1<=0) error("non-positive area");
int area2 = framed_area(2,z);
 
 return area1;
}
 
int main()
{
int res = f( 2, 2, 2);
}
В месте выполнения функции error() происходит вот такая ошибка:
Не работает функция error()
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.09.2015, 08:07
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Не работает функция error() (C++):

Error 1 error C2447: '{' : missing function header (old-style formal list?) и почему не работает ? и подскажите как пользоваться wcout - C++
Всем привет я начинаю обучаться программированию и сегодня столкнулся с такой проблемой Error 1 error C2447: '{' : missing function header...

std::string код работает в VS 6.0, но не работает в VS2012 (error C4996) - C++
Как изменился синтаксис в Visual Studio 2012 данной строки? В VS 6.0 работает, в 2012 - нет. Кто подскажет, где можно взять список...

Функция Error - C++
В какой библиотеке храниться функция Error

Функция cin.get(array, 80) работает в одной программе, но не работает в другой - C++
Добрый день. Я что то совсем запутался, одна и та же функция в одной программе работает, а в другой нет. В этой программе...

Error C2659: =: функция в качестве левого операнда - C++
#include &quot;stdafx.h&quot; #include &quot;Armor.h&quot; Armor::Armor(int defence) { this-&gt;defence=defence; } Armor::~Armor() ...

error C2064: результатом вычисления фрагмента не является функция - C++
Здравствуйте. Недавно начала программировать и столкнулась с такой проблемой, помогите, пожалуйста: error C2064: результатом вычисления...

1
DrOffset
7376 / 4453 / 1009
Регистрация: 30.01.2014
Сообщений: 7,304
03.09.2015, 08:57 #2
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от ajohnny Посмотреть сообщение
В месте выполнения функции error() происходит вот такая ошибка:
Дык исключение же. Так и должно быть, если его не ловить.
Смотрим как определена фунция error:
C++
1
2
3
4
5
// error() simply disguises throws:
inline void error(const string& s)
{
    throw runtime_error(s);
}
Нужно исключение поймать, чтобы обработать ошибку.
C++
1
2
3
4
5
6
7
8
9
10
11
int main()
{
    try
    {
        int res = f( 2, 2, 2);
    }
    catch(std::exception const & e)
    {
        std::cout << e.what();
    }
}
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.09.2015, 08:57
Привет! Вот еще темы с ответами:

Ошибка: error C2129: статическая функция объявлена, но не определена - C++
В помощь начинающим изучать C++ хочу подсказать реальную причину этой ошибки. Так как реально в интернете на форумах рассказывается...

Ошибка error C2491: SetSiteInterface: определение dllimport функция не разрешено - C++
Добрый вечер. Помогите пожалуйста. Plugin компилируется и работает под х32 Пытаюсь скомпилировать под х64 выдает ошибку error...

процедуры и функции С++(error C2660: input: функция не принимает 2 аргументов) - C++
ошибка: error C2660: input: функция не принимает 2 аргументов в 25-26 строке #include &lt;cstdlib&gt; #include &lt;iostream&gt; using...

Error C2064: результатом вычисления фрагмента не является функция, принимающая 1 аргументов - C++
template &lt;class T&gt; class Stack { private: T* item; int m_size; public: Stack(int MaxSize) { m_size(0); item = new T;} bool...


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

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

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