在抽象类中删除操作员,它如何工作

Operator Delete in an Abstract Class, how does it work

本文关键字:何工作 工作 抽象类 删除 操作员      更新时间:2023-10-16

这个东西如何工作。

class Car
{
 public:
 Car() = default; 
 Car(const Car& other) = delete; 
 Car& operator=(const Car& other) = delete; 
 virtual void WhatsTheMake() = 0; 
 virtual void WhatsTheSpeed() =0; 
}

现在, delete 关键字在这里是什么意思?

还使用抽象类增加代码大小。我的意思是,如果我不需要抽象课,我是否总是必须创建它?

如果将函数标记为删除(= delete),则任何使用都会生成编译错误。

关于代码大小,实际上是的,定义抽象类将生成更多用于管理纯虚拟呼叫的代码(声明抽象类(纯虚拟方法)大大增加了二进制尺寸)

亲自使用抽象类时,我需要定义一个共同的基础接口,而我不想提供任何共同的实现,我想将实现委派给将从(https://en en.wikipedia.org/wiki/polymorphism_(computer_science)#subtyping)