Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
0 / 0 / 0
Регистрация: 03.12.2017
Сообщений: 122
1

Обработка исключений при наследовании

20.02.2018, 12:07. Показов 889. Ответов 6
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
В следующей программе на выводе получаю

C()
B()
C::Msg


Проследила и вижу, что сначала throw вызывает конструктор B, потом конструктор A. Потом обращается к обработчику catch(C c), и только тогда уже я получаю на экране output

Почему так?




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
class  C{  
 
public:   
 
  C(){  std::cout  <<  "C()"   <<  std::endl;  }   
 
  virtual   void  Print(){  std::cout   <<  "A::Msg()"  <<  std::endl;  }   
 
};  
 
  
 
class  B: public  C{  
 
public:   
 
  C(){  std::cout  <<  "C()"   <<  std::endl;  }   
 
  virtual   void  Print(){  std::cout   <<  "B::Msg()"  <<  std::endl;  }   
 
};  
 
  
 
int  main()  
 
{   
 
  try{  
 
  throw B();  
 
  }   
 
  catch  (C c){   c.Print();  }   
 
  catch(...){  std::cout  <<  "Unhandled  exception  "  <<  std::endl;  }   
 
  return  0;  
 
}
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
20.02.2018, 12:07
Ответы с готовыми решениями:

Обработка исключений при вводе
Здравствуйте, подскажите. Как сделать обработку исключений на ввод чисел? Чтобы нельзя было ввести буквы, а только цифры. Обработка...

Обработка исключений при работе с файлами
Кто может помочь с обработкой исключений для файла? Нужно чтобы обработчик перехватывал исключение и предлагал ввести путь к файлу заново....

Обработка исключений с пмощью структурированной обработки исключений
Есть функция, которая определенным образом работает с файлами,но при работе с файлами &quot;не подходящего&quot; типа вызывается...

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

6
184 / 192 / 48
Регистрация: 25.08.2011
Сообщений: 792
20.02.2018, 12:11 2
а где у вас клас А? Может Быть потому что это стандартный подход построения обьекта? сначала строим частичку родительских классов потом производных?)
1
0 / 0 / 0
Регистрация: 03.12.2017
Сообщений: 122
20.02.2018, 12:24  [ТС] 3
но я вот смотрю сначала компилятор смотрит производный класс, потом базовый. а на выходе получается наоборот

Добавлено через 42 секунды
и он не смотрит на виртуальные функции, но выдает их комментарии на экран
0
184 / 192 / 48
Регистрация: 25.08.2011
Сообщений: 792
20.02.2018, 12:28 4
При построении обьекта производного работа идет следующим образом: вызиваеться конструктор производного потом сразу же вызываеться конструктор базового инициализируеться часть/область(тут игра слов) базового класса потом завершаеться конструирование производного освобождение в обратном порядке
1
0 / 0 / 0
Регистрация: 03.12.2017
Сообщений: 122
20.02.2018, 12:32  [ТС] 5
если я не ошибаюсь, к конструкторам компилятор привязывает указатель на вирт.функции. так?
0
184 / 192 / 48
Регистрация: 25.08.2011
Сообщений: 792
20.02.2018, 13:10 6
NellkaKaramelka, указатель на виртуальные функции это свойство классаю у меня для вас есть полезная ссылочка почитайте: http://scrutator.me/post/2014/... ut_p1.aspx там три статьи про размещение обьектов и как работает виртуальность
1
0 / 0 / 0
Регистрация: 03.12.2017
Сообщений: 122
20.02.2018, 16:05  [ТС] 7
спасибо
0
20.02.2018, 16:05
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
20.02.2018, 16:05
Помогаю со студенческими работами здесь

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

Обработка возможных исключений при вычислении значения функции
Постройте таблицу значений функции y=f(x) для x є с шагом h . Если в некоторой точке функция не определена, то выведите на экран сообщение...

Обработка исключений в с++. Ошибки при использовании try, catch, throw
Задание - сделать обработку исключений для такого примера ((2x-4)/sinx)^1/2 Я написал простое выполнение данной программы, когда пытаюсь...

Обработка исключений
Надо отловить ввод данных некорректного типа. Объясните пожалуйста на конкретном примере, как это правильно сделать. #include...

Обработка исключений
При срабатывании исключения программы уходит в бесконечный цикл, перестает работать ввод данных(cin&gt;&gt;) . Что нужно дополнить? ...

Обработка исключений
Нужно сделать обработку исключения, сохраняя работоспособность программы. При тестированиии ввожу букву, начинается бесконечный цикл... Жду...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Проектирование и моделирование
hw_wired 28.01.2025
Введение в моделирование Моделирование представляет собой один из фундаментальных методов научного познания, который позволяет изучать объекты и явления через создание их упрощенных аналогов. В. . .
Алгоритмы и исполнители
hw_wired 28.01.2025
Введение в алгоритмы В современном мире информационных технологий алгоритмы играют основополагающую роль в решении различных задач и автоматизации процессов. Алгоритм представляет собой точную. . .
Хранение информации
hw_wired 28.01.2025
Введение: Роль систем хранения информации в современном мире В современную эпоху цифровых технологий эффективное хранение информации становится одним из ключевых факторов успешного развития любой. . .
Обработка числовой информации
hw_wired 28.01.2025
Введение в обработку числовой информации В современном мире обработка числовой информации стала неотъемлемой частью как профессиональной деятельности, так и повседневной жизни. Электронные таблицы. . .
Мультимедиа
hw_wired 28.01.2025
Введение в мультимедийные технологии В современном мире мультимедийные технологии стали неотъемлемой частью нашей жизни, проникнув во все сферы человеческой деятельности. Термин "мультимедиа". . .
Обработка текстовой информации
hw_wired 28.01.2025
Введение в обработку текстовой информации В современном мире обработка текстовой информации играет фундаментальную роль в различных сферах человеческой деятельности. Текстовые редакторы стали. . .
Обработка графической информации
hw_wired 28.01.2025
Введение в компьютерную графику Компьютерная графика стала неотъемлемой частью современного цифрового мира, пройдя впечатляющий путь развития от простейших черно-белых изображений до сложных. . .
Python в Алгоритмике: Решение задач
hw_wired 28.01.2025
Введение в Python и Алгоритмику В современном мире программирование стало неотъемлемой частью образования и профессионального развития. Python зарекомендовал себя как один из самых популярных и. . .
Компьютер как универсальное устройство для работы с информацией
hw_wired 28.01.2025
Введение в устройство компьютера Компьютер представляет собой универсальное электронное устройство, предназначенное для автоматической обработки информации. В современном мире компьютер стал. . .
Информация и информационные процессы
hw_wired 28.01.2025
Понятие информации и ее виды В современном мире информация является одним из фундаментальных понятий, пронизывающих все сферы человеческой деятельности. Под информацией понимают любые сведения об. . .
Алгоритмика
hw_wired 28.01.2025
Введение: Основы алгоритмики и её роль в информатике В современном мире программирование и алгоритмическое мышление стали неотъемлемой частью образования и профессиональной деятельности. . . .
Информационное моделирование
hw_wired 28.01.2025
Введение в информационное моделирование В современном мире информационное моделирование стало неотъемлемой частью научной, образовательной и профессиональной деятельности. Это мощный инструмент. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru