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

ошибка, иерархия исключений, классы

04.12.2011, 23:05. Показов 1142. Ответов 0
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
//main.cpp

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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
#pragma once
 
#include <iostream>
#include "chelovek.h"
#include "adult.h"
#include "exep.h"
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>
 
using namespace std;
 
int main()
{
    int i,old,weight,id,numb;
    char name[40];
    Human *Humanoid[3]; 
    
    while(true)
{
        fflush(stdin);
        cout << "Name " << endl;
        gets(name); 
        cout << "Old " << endl;
        cin >> old;
        cout << "Weight " << endl;
        cin >> weight;       
        try
    {        
            if (old>=18)
            {
                cout << "passportID : ";
                cin >> id;
                Humanoid[0] = new Adult(name,old,weight,id);
            }
            else
                Humanoid[0] = new Human( name, old, weight);
        }
        catch(error & err)
        {
            cout << "Nevernoe zna4enie" << err.data << "\nVvedite zanovo:" << endl;
        continue;
    }
/*catch(error & e)
        {
            cout << "Nevernoe zna4enie" << e.what() << "\nVvedite zanovo:" << endl;
        continue;
    }*/
    break;
    }
    while(true)
    {
        fflush(stdin);
        cout << "Name " << endl;
        fflush(stdin);
        gets(name); 
        cout << "Old " << endl;
        cin >> old;
        cout << "Weight " << endl;
        cin >> weight;
      
        try
        {
            if (old>=18)
                {
                cout << "passportID : ";
                cin >> id;
                Humanoid[1] = new Adult(name, old, weight,id);
                    }
            else
                Humanoid[1] = new Human( name, old, weight);
    }
        catch(const error & err)
        {
            //e->what();
            cout << "Nevernoe zna4enie" << err.data << endl;
            continue;
        }
        break;
    }
    for (i=0;i<2;++i)
      {
          Humanoid[i]->PrintInfo();
          } 
    cout << "____________________________\nPereopredelenie vozrasta:" << endl;
    cout << "nomer osobi -";
    cin >> numb;
    cout << "Old " << endl;
    cin >> old;
    if (old>=18)
     {
        cout << "passportID : ";
        cin >> id;
        Human * temp = new Adult(Humanoid[numb-1]->get_name(),old,Humanoid[numb-1]->get_weight() , id);
        delete Humanoid[numb-1];
        Humanoid[numb-1] = temp;
     }
    else
    {
        Human * temp = new Human(Humanoid[numb-1]->get_name(),old,Humanoid[numb-1]->get_weight());
        delete Humanoid[numb-1];
        Humanoid[numb-1] = temp;
    }
    //delete Humanoid[2];
    Humanoid[numb-1]->PrintInfo();
    
       delete Humanoid[0];
       delete Humanoid[1];
    
       getch();
       return 0;
       }
//exep.h
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
#pragma once
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>
#include <iostream>
#include "chelovek.h"
#include "adult.h"
 
using namespace std; 
 
class error
  {
  public:
    int data;
    error(int d) : data(d)
    {
        data=d;
        //cout<<" <0"<<endl;
        //getch();
        //_exit(0);
    }
     error () throw();
     error (const error&) throw();
     virtual ~error () throw();
     virtual char* what () const throw();
  };
class errorOLD : public error
{
public:
    errorOLD(int b)
    {
        data=b;
    };
    char * what()
    {
        cout << "patsient ymer!!!"<<endl; 
        return "umer";
    }
};
class errorWEIGHT : public error
{
public:
    errorWEIGHT(int b)
    {
        data=b;
    };
    char * what() 
    {
        cout << "ves <0 anoreksia !!!"<<endl;
        return "anorecsia"; 
        
     } 
};
//chelovek.cpp

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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
#pragma once
#include <iostream>
#include "chelovek.h"
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>
#include "adult.h"
#include "exep.h"
//#include "exep.h"
using namespace std;
 
 
Human::Human()
{
    name = NULL;
    old = 0;
    weight = 0;
}
 
Human::Human(const Human &NextHuman)
{
    if(NextHuman.name)
    {
        name = new char [strlen(NextHuman.name)+1];
        strcpy(name, NextHuman.name);
    }
    else
        name = NULL;
    old = NextHuman.old;
    weight = NextHuman.weight;
        }
Human::Human(const char * name, const int old, const int weight)
{
    this->name = 0;
    set_name(name);
    set_old(old);
    set_weight(weight);
}
 
Human::~Human()
{
    if (name != NULL)
    {
        delete [] name;
        name = NULL;
    }
}
void Human::set_name(const char *_name)
{
    if (name != NULL) { delete [] name; } 
    name = new char [strlen(_name) + 1];
    strcpy(name, _name);
}
void Human::set_old(int _old) 
{
    if (_old < 0)
      {
          cout << "vozrast " << _old <<  " -1 patsient ymer!!!"<<endl;
          errorOLD err(_old);
        throw err.what();
      }
    old = _old;
}
void Human::set_weight(int _weight) 
{
    if (_weight < 0)
    {
        cout << "ves " << _weight <<  " anoreksia !!!"<<endl;
        errorWEIGHT err(_weight);
        throw err.what();
    }
    weight = _weight;
}
char * Human::get_name() 
{
    if(name != 0) 
        return name; 
    else
        return "0";
}
int Human::get_old() 
{
    return old;
}   
int Human::get_weight() 
{
    return weight;
}

выдает ошибки
error LNK2001: неразрешенный внешний символ ""public: __thiscall error::error(void)" (??0error@@QAE@XZ)"
error LNK2001: неразрешенный внешний символ ""public: virtual char * __thiscall error::what(void)const " (?what@error@@UBEPADXZ)"
еrror LNK2001: неразрешенный внешний символ ""public: virtual __thiscall error::~error(void)" (??1error@@UAE@XZ)"
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
04.12.2011, 23:05
Ответы с готовыми решениями:

Иерархия исключений
Реализовать базовый класс исключений и многоуровневую иерархию производных классов с использованием наследования, таких как выход индекса...

Иерархия исключений с использованием порождающих паттернов
Вообщем поставлена задача, сделать иерархию исключений для парсера, вроде что то накидал, ну и работает норм, хотелось бы узнать от...

C++ классы и иерархия
Цветы, травы и овощи являются растениями. Создайте необходимые классы и иерархию . Помогите пожалуйста решить )) буду очень признателен

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
04.12.2011, 23:05
Помогаю со студенческими работами здесь

Классы, иерархия классов
а) Создать иерархию классов здание, административное здание и жилое здание. Определить конструктор копирования, оператор присваивания через...

Классы исключений
расскажите, пожалуйста, про предопределенные классы исключений

классы и обработка исключений
можете пожалуйста привести пример ,как внутри функции класса обрабатывать исключительные ситуации(я не понимаю как должен выглядеть и где...

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

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


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
Отправка уведомления на почту при изменении наименования справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере изменения наименования типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
SDL3 для Desktop (MinGW): Вывод текста со шрифтом TTF с помощью библиотеки SDL3_ttf на Си и C++
8Observer8 24.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-text-sdl3-c. zip finish-text-sdl3-cpp. zip
Жизнь в неопределённости
kumehtar 23.03.2026
Жизнь — это постоянное существование в неопределённости. Например, даже если у тебя есть список дел, невозможно дойти до точки, где всё окончательно завершено и больше ничего не осталось. В принципе,. . .
Модель здравоСохранения: работники работают быстрее после её введения.
anaschu 23.03.2026
geJalZw1fLo Корпорация до введения программа здравоохранения имела много невыполненных работниками заданий, после введения программы количество заданий выросло. Но на выплатах по больничным это. . .
Контроль уникальности заводского номера
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере нетипового документа выдачи шин для спецтехники с табличной частью, разработанного в конфигурации КА2. Данные берутся из. . .
Хочу заставить корпорации вкладываться в здоровье сотрудников: делаю мат модель здравосохранения
anaschu 22.03.2026
e7EYtONaj8Y Z4Tv2zpXVVo https:/ / github. com/ shumilovas/ med2. git
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru