Здравствуйте, Bork, Вы писали:
B>хехе
ключевое слово в этой выдержке — "The implicitly-defined copy constructor". А где в своем примере ты видишь это implicitly-defined ? если у тебя определен пользовательский конструктор B(C), который подходит к ситуации лучше, т.к. не требует приведения типов.
См. пример внимательно:
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 &), т.е. бред какой то, ч.т.д.