Intro
纯虚函数使用通用语法声明:
virtual f() = 0;
然而,自 c++11 以来,有一种方法可以显式地传达non existence
(特殊)成员函数的:
Mystruct() = delete; // eg default constructor
Q
为什么不将此语法扩展到纯虚函数以实现此类操作通信的一致性? :
virtual f() = delete;
Note
我知道显而易见的答案是because the Standard says so!
。我想知道这背后的原因以及是否曾经有过这样的提议(或意图)。
粗略地说,区别在于:
virtual void f() = 0;
说“这门课是abstract,而且我可能还没有编写这个成员函数的实现”(尽管你可以这样做)。
然而,这个:
void f() = delete;
说“这个成员函数实际上不存在,并且没有人会通过."
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)