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

_>>По логике и по стандарту, см. ВНИМАТЕЛЬНО 12.8.8
Автор: sergey_shandar
Дата: 13.08.04
, а то мы ходим по кругу. Преобразования типов здесь вообще ни при чем.


B>как это ни при чем ? а где компилятор должен взять это B? чтобы вызвать B(B) ?


B>c одной стороны ты требуешь побитового (memberwise) копирования (ссылаясь на стандарт), а с другой создаешь пользовательские конструкторы на разные случаи жизни. из этого следует 2 вывода:


Это такой способ издеваться? Перевожу:

12.8.8.
Неявный конструктор копирования для класса X (в нашем случае C) выполняет копирование его составляющих (причем здесь побитовое копирование bitwise copy?). Порядок копирования такой же как и порядок инициализации баз (или наследуемых классов, как Вам больше нравиться) и членов (мемберов, полей и т.п.) в определенном пользователем конструкторе (см. 12.6.2). Каждый такая составляющая копируеться в соответствии с её типом:
— если это class (как в нашем случае B), то используеться конструктор копирования этого класса (т.е. B::B(const B &), а не B::B(const C&)).
— если это массив, то каждый элемент этого массива копируеться в соотвествии с его типом.
— если это скалярный тип, то вызываеться встроенный оператор присваивания.

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