C++ 抽象类-C';tor,D';tor和运算符=

C++ 抽象类-C';tor,D';tor和运算符=,c++,c++11,polymorphism,abstract-class,C++,C++11,Polymorphism,Abstract Class,当我们谈论抽象类时,我需要如何引用d'tor、c'tor和操作符= (也就是说,这些方法是如何为抽象类定义的,我可以为抽象类实现它们?存在这样的情况,所以有必要为抽象类实现它们?) 我问这个问题是因为我们无法从抽象类的类型创建对象,因此,我不确定它对上面编写的方法有何影响(可能存在关于这些方法的特殊规则,因此,我问这个问题)。这实际上取决于用例。纯接口类(只有纯抽象函数声明的类)不需要这些。否则,不要忘记考虑。是的,如果需要的话,可以为抽象类实现它们。实际上,很少有必要这样做,因为编译器生成的默

当我们谈论抽象类时,我需要如何引用
d'tor
c'tor
操作符=

(也就是说,这些方法是如何为抽象类定义的,我可以为抽象类实现它们?存在这样的情况,所以有必要为抽象类实现它们?)


我问这个问题是因为我们无法从抽象类的类型创建对象,因此,我不确定它对上面编写的方法有何影响(可能存在关于这些方法的特殊规则,因此,我问这个问题)。

这实际上取决于用例。纯接口类(只有纯抽象函数声明的类)不需要这些。否则,不要忘记考虑。是的,如果需要的话,可以为抽象类实现它们。实际上,很少有必要这样做,因为编译器生成的默认值(可以在C++11及更高版本中使用
=default
强制)通常就足够了。对于纯接口类(包含虚拟成员函数而没有数据成员),默认值就足够了。对于显式管理动态内存分配的抽象类(例如,纯虚拟成员函数和作为指针的数据成员),而不是使用其他类来管理动态内存分配的抽象类,可能需要遵循三个或五个规则。