操作符在抽象类中删除,它是如何工作的

时间:2017-12-07 08:56:23

标签: c++ abstract-class delete-operator

这件事是如何运作的。

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

现在删除关键字的含义是什么?

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

1 个答案:

答案 0 :(得分:1)

如果将某个函数标记为已删除(=删除),则使用该函数将生成编译错误。

关于代码大小,实际上是,定义抽象类将生成更多用于管理纯虚拟调用的代码(Declaring abstract class (pure virtual method) increase binary size substantially

当我需要定义一个公共基本接口并且我不想提供任何常见的实现时我个人使用抽象类,并且我想将实现委托给将继承的具体类({{3 }})