crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

> Задачка N5
LuckLess
  опции профиля:
сообщение 11.4.2008, 11:48
Сообщение #1


Студент
*

Группа: Новичок
Сообщений: 31
Регистрация: 10.10.2007
Пользователь №: 8

Спасибо сказали: 0 раз(а)




Репутация:   0  


встретил тут прикольный код..
АХТУНГ - КОМПИЛИРУЕМ МОЗГОМ!
class A
   {
   public:
      virtual ~A(){}
   };

class B : public A
   {
   };

class C :  public A
   {
   };

class D : public B, public C
   {
   };

void f()
   {
   throw D();
   }

int main()
   {
   try
      {
      f();
      }
   catch(const A& a)
      {
      std::cout << "Catched " << typeid(a).name() << " as A" << std::endl;
      }
   catch(const B& b)
      {
      std::cout << "Catched " << typeid(b).name() << " as B" << std::endl;
      }
   }


что будет?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
archimed7592
  опции профиля:
сообщение 11.4.2008, 16:49
Сообщение #2


Участник
**

Группа: Участник
Сообщений: 127
Регистрация: 27.12.2007
Из: Moscow
Пользователь №: 56

Спасибо сказали: 0 раз(а)




Репутация:   0  


Цитата
Кто нибудь четко сформулировать ответ может?

Цитата
Ambiguity

Убедиться можно при попытке сделать следующее:
D d;
A const &a = d; // еггог
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме


Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 22.12.2024, 13:38