Здравствуйте, гость ( Вход | Регистрация )
archimed7592 | Дата 11.4.2008, 16:49 |
Цитата Кто нибудь четко сформулировать ответ может? Цитата Ambiguity Убедиться можно при попытке сделать следующее:
|
|
Andrew Selivanov | Дата 11.4.2008, 16:38 |
Цитата archimed7592, думаю тут в другом дело... Хде слон, которого я не приметил? P.S. Проверил на студии: "as B"... МинЖВ под рукой нет. Но больше всего порадовало, как студия перед тем как выдать "as B" выдала warning со словами, мол catch B const & перекрыт первым catch'ем, который const A & 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". Наверное можно использовать как пример виртуального наследования:
Вот так будет более ожидаемый результат |
|
archimed7592 | Дата 11.4.2008, 14:24 |
Ambiguity? Лаки, ты жестокий человек . | |
LuckLess | Дата 11.4.2008, 13:43 |
Цитата Наследование у D от A идет косвенно, поэтому вариант A не подходит не то )) поксказка.. если B и C будут наследовать A виртуально, то будет "as A" |
|
AD | Дата 11.4.2008, 13:41 |
Цитата std::cout << "Catched " << typeid(.name() << " as B" << std::endl; после того, как сам решил задачку посмотрел на ответы. Наследование у D от A идет косвенно, поэтому вариант A не подходит |
|
LuckLess | Дата 11.4.2008, 13:18 |
Ха! Архимед попался! Пойду возьму с полки пирожек Цитата ибо срабатывает первый подходящий угу.. но тут есть завязочка.. подходящий ли тут A ? |
|
ViGOur | Дата 11.4.2008, 13:07 |
Потом я думаю LuckLess, сам скажет, как раз у тебя будет время подумать... | |
archimed7592 | Дата 11.4.2008, 13:02 |
Цитата archimed7592, думаю тут в другом дело... Хде слон, которого я не приметил? P.S. Проверил на студии: "as B"... МинЖВ под рукой нет. Но больше всего порадовало, как студия перед тем как выдать "as B" выдала warning со словами, мол catch B const & перекрыт первым catch'ем, который const A & |
|
ViGOur | Дата 11.4.2008, 12:54 |
archimed7592, думаю тут в другом дело... | |
archimed7592 | Дата 11.4.2008, 12:47 |
"as A", ибо срабатывает первый подходящий catch. | |
Просмотр темы полностью (откроется в новом окне) | |
Текстовая версия | Сейчас: 29.4.2024, 20:16 |