crossplatform.ru

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

2 страниц V  < 1 2  
Ответить в данную темуНачать новую тему
> Задачка N5
Andrew Selivanov
  опции профиля:
сообщение 11.4.2008, 16:38
Сообщение #11


Участник
**

Группа: Участник
Сообщений: 249
Регистрация: 9.10.2007
Из: Москва
Пользователь №: 3

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




Репутация:   6  


Цитата(archimed7592 @ 11.4.2008, 14:02) *
Цитата
archimed7592, думаю тут в другом дело...
Хде слон, которого я не приметил? :)
P.S. Проверил на студии: "as B"... МинЖВ под рукой нет.
Но больше всего порадовало, как студия перед тем как выдать "as B" выдала warning со словами, мол catch B const & перекрыт первым catch'ем, который const A & :lol:


mingw был того же мнения...
..\src\test.cpp: In function `int main()':
..\src\test.cpp:36: warning: exception of type `B' will be caught
..\src\test.cpp:32: warning: by earlier handler for `A'

Кто нибудь четко сформулировать ответ может? :) Мне на ум пришел вариант "Плюнул так как не смог выбрать один из двух экземпляров A".
Наверное можно использовать как пример виртуального наследования:
class B : virtual public A 
   {
   };

class C : virtual public A
   {
   };

Вот так будет более ожидаемый результат :)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
archimed7592
  опции профиля:
сообщение 11.4.2008, 16:49
Сообщение #12


Участник
**

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

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




Репутация:   0  


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

Цитата
Ambiguity

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

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


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




RSS Текстовая версия Сейчас: 21.12.2024, 21:34