c – 为什么纯虚函数初始化为0?
作者:互联网
我们总是声明一个纯虚函数:
virtual void fun () = 0 ;
即,它总是被赋值为0.
我的理解是,这是将此函数的vtable条目初始化为NULL,此处的任何其他值都会导致编译时错误.这种理解是否正确?
解决方法:
使用原因= 0是Bjarne Stroustrup不认为他可以获得另一个关键字,例如在实现该功能时通过C社区的“纯粹”.这在他的书The Design & Evolution of C++第13.2.3节中有所描述:
The curious =0 syntax was chosen …
because at the time I saw no chance of
getting a new keyword accepted.
他还明确指出,这不需要将vtable条目设置为NULL,并且这样做不是实现纯虚函数的最佳方法.
标签:pure-virtual,c,abstract-class 来源: https://codeday.me/bug/20190915/1805574.html