Re[11]: Копирование базовых под
От: Bork СССР  
Дата: 13.08.04 05:08
Оценка: :)
Здравствуйте, sergey_shandar, Вы писали:

спасибо за перевод, а то я бы сам не догадался

попробую еще разик ....

вот это — стандартное поведение компилятора, которое и описывает твоя выдержка из стандарта
<псевдокод>
C(const C&)
{
B(operator B(C)) — конструирование базового класса с применением неявного приведения типа
С(С) — конструирование инстанцируемого класса
}
operator B(const C&) — оператор приведения типа

так и происходит в твоем примере при отсутствии конструктора B(C). но введя его ты сам, добровольно, меняешь логику принятую по умолчанию, т.к. в дело вступает другая строка стандарта (искать не буду) о применении неявного приведения типа. и эта строка стандарта явно запрещает это приведение в слуае если определена функция с точной сигнатурой. что и происходит в твоем случае.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.