C++ 使用派生类对象指定基类对象的错误类型

C++ 使用派生类对象指定基类对象的错误类型,c++,C++,我只是想知道,如果将派生类对象从其基类分配给变量,会出现哪些错误 这是语法错误还是编译运行时错误?。但这不是正常或良好的做法 发生的情况是,派生类被“切片”成为基类的对象 常见的情况是将派生对象的指针/引用指定给基对象的指针/引用。这构成了C++运行时多态性的基础。遇到这种赋值时,可以强制编译器触发错误: class Derived; class Base { public: Base() = default; Base(const Derived &d) = del

我只是想知道,如果将派生类对象从其基类分配给变量,会出现哪些错误

这是语法错误还是编译运行时错误?

。但这不是正常或良好的做法

发生的情况是,派生类被“切片”成为基类的对象


常见的情况是将派生对象的指针/引用指定给基对象的指针/引用。这构成了C++运行时多态性的基础。

遇到这种赋值时,可以强制编译器触发错误:

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;
}