Здравствуйте, Bork, Вы писали:
B>Здравствуйте, sergey_shandar, Вы писали:
_>>См. пример внимательно:
_>>_>>struct C;
_>>struct B
_>>{
_>> B() {}
_>> B(const B &) { std::cout << "copy constructor" << std::endl; }
_>> B(const C &) { std::cout << "[cencored] constructor" << std::endl; }
_>>};
_>>struct C: B {}; ///< строка 8.
_>>
_>>В строке 8 компилятор должен создавать правильный "The implicitly-defined copy constructor", который должен вызывать для каждого "of its subobjects" "the copy constructor", т.е. B::B(const B &). А вызываеться B(const C &), т.е. бред какой то, ч.т.д.
B>это с какой такой великой радости он это должен ?
По логике и
по стандарту, см. ВНИМАТЕЛЬНО 12.8.8Автор: sergey_shandar
Дата: 13.08.04
, а то мы ходим по кругу. Преобразования типов здесь вообще ни при чем.