2014-08-30 121 views

回答

1

也没有。但它的不是正常或良好的做法。

会发生什么是派生类被“切片”到成为基类的一个对象。

当您将派生对象的指针/引用分配给指向基础的指针/引用时,常见的是什么。 构成了C++运行时多态性的基础。

1

可以强制编译器来触发一个错误,当遇到这样的分配:

class Derived; 

class Base 
{ 
public: 
    Base() = default; 

    Base(const Derived &d) = delete; 
    Base& operator=(const Derived& other) = delete; 
}; 

class Derived : public Base 
{ 
}; 

int main() 
{ 
    Derived d; 
    Base b = d; 
} 

Live demo link.

相关问题