Re[4]: Копирование базовых подо
От: sergey_shandar США http://getboost.codeplex.com/
Дата: 13.08.04 02:53
Оценка:
Здравствуйте, Bork, Вы писали:

B>1. а не бред объявит в базовом классе конструктор, принимающий на вход экземпляр производного класса ?

Гм... Мининимальный пример показывающий ошибку в компиляторе не являеться бредом, если он показывает ошибку в компиляторе. Искать какую то другую смысловую нагрузку в таком примере можно, но это offtopic.

B>2. компилятор естественно вызывает конструктор B(C), т.к. ему в этом случае не нужно преобразования типа (т.е. его поведение вполне соответствует стандарту),

Не соответствует стандарту. См. стандарт:

12.8.8.
The implicitly-defined copy constructor for class X performs a memberwise copy of its subobjects. The
order of copying is the same as the order of initialization of bases and members in a user-defined constructor
(see 12.6.2). Each subobject is copied in the manner appropriate to its type:
if the subobject is of class type, the copy constructor for the class is used;
— if the subobject is an array, each element is copied, in the manner appropriate to the element type;
— if the subobject is of scalar type, the built-in assignment operator is used.

getboost.codeplex.com
citylizard.codeplex.com
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.