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

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

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

Классы и исключения - C++

20.02.2011, 21:15. Просмотров 524. Ответов 5
Метки нет (Все метки)

Нужна помощь. Есть класс, в котором определен класс исключение.
Как этот класс вызвать в дружественной функции?
C++
1
2
3
4
5
6
7
8
class number
{
private:
    int *num;
    int size;
public:
    class error{};
friend number operator -(int ,const number&);
C++
1
2
3
4
5
6
7
8
9
10
number operator -( int a,const number& z)
{
    number sum,x(a),c=z;
    if(c>=x)
        sum.size=c.size;        
    else
    {
        //throw error();// Вот в этой строке нужно вызвать класс исключения
//но вызов z.error() выдает ошибку error C2274: 'function-style cast' : illegal as right side of '.' operator
    }
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.02.2011, 21:15
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Классы и исключения (C++):

Классы, исключения и совершенные числа - C++
Здраствуйте! Нужно описать класс Magicflower. Для создания объектов этого класса необходимо задать число лепестков цветка, которое должно...

Чем классы-исключения библиотеки могуть быть полезнее классов-исключений написанных своими руками - C++
Чем классы-исключения библиотеки могуть быть полезнее классов-исключений написанных своими руками + Какое исключение может...

Непонятна тема (Классы содержащие другие классы, как данные члены ) - C++
Изучаю книгу Джесс Либерти(в частности эту главу в данный момент) #include <iostream> class Point { public: void SetX(int...

Программа по классам, которая использует классы точек и прямых на плоскости, а, возможно, и другие классы - C++
Нужно написать программу, которая использует классы точек и прямых на плоскости, а, возможно, и другие классы. Реализовать её нужно в трех...

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

Классы и наследование (Создать класс 3D фигура, и производные классы шар, конус, цилиндр и куб. Создать функцию вычисления объёма.) - C++
Уважаевые, помогите написать прожку на экзамене: Создать класс 3D фигура, и производные классы шар, конус, цилиндр и куб. Создать функцию...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Ma3a
Эксперт C++
617 / 461 / 31
Регистрация: 28.01.2011
Сообщений: 605
20.02.2011, 21:31 #2
C++
1
throw new number::error();
1
РагнаР
0 / 0 / 0
Регистрация: 21.10.2010
Сообщений: 27
20.02.2011, 21:47  [ТС] #3
А слово new точно нужно?
С ним выдавало ошибку, а когда убрал вроде как заработало.
0
Ma3a
Эксперт C++
617 / 461 / 31
Регистрация: 28.01.2011
Сообщений: 605
20.02.2011, 22:06 #4
можно и не писать
0
Somebody
2789 / 1603 / 145
Регистрация: 03.12.2007
Сообщений: 4,193
Завершенные тесты: 1
20.02.2011, 22:23 #5
Если кто-то сделал new, кто-то должен сделать и delete. Так что не надо new.
0
РагнаР
0 / 0 / 0
Регистрация: 21.10.2010
Сообщений: 27
08.03.2011, 21:06  [ТС] #6
Еще один вопрос.

Довольно странное(для меня) поведение исключения.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
number number::operator -(const number &a)const
{
    number sum;
    sum.Erase();
    number c(*this);
    if(c<a)
    {
        throw error();      
    }
    else
    {
        sum.size=c.size;    
    }
Это исключение обрабатывается как стандартное(то есть выскавивает сообщение об ошибке)
А если же записать так:
C++
1
2
3
4
5
6
number number::operator -(const number &a)const
{
    number sum;
        throw error();
    sum.Erase();
    number c(*this);
то обрабатывается, как мое исключение(то есть выполняет то, что написано в catch. Не могу понять почему, ведь должно обрабатывать одинаково.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.03.2011, 21:06
Привет! Вот еще темы с ответами:

классы/дочерние классы/методы - C++
помогите пожалуйста! надо что выводились только учебеники. чтоб былo через GetTip. h файл class Book { protected: char...

Классы возможностей(Mixin классы) - C++
Не могу понять смысла использования mixin классов( это класс в котором есть только методы и нет членов-данных) Т.е. к примеру у нас...

Классы, включающие другие классы - C++
Столкнулся вот с таким кодом: #include &lt;iostream&gt; class Point { public: void SetX(int x) {itsX = x;} void SetY(int y) ...

Исключения - C++
Всем доброго времени суток! В универе дошли до темы &quot;Обработка исключительных ситуаций&quot; и возник вопрос, где в реальных приложениях...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
08.03.2011, 21:06
Ответ Создать тему
Опции темы

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