【发布时间】:2011-01-10 12:40:41
【问题描述】:
我们总是将纯虚函数声明为:
virtual void fun () = 0 ;
即,它总是分配给 0。
我的理解是,这是为了将此函数的 vtable 条目初始化为 NULL,此处的任何其他值都会导致编译时错误。这种理解正确与否?
【问题讨论】:
-
请注意,vtable 不是语言要求,而只是虚方法的实现选项。编译器可以创建具有不同实现的相同抽象(即,没有 vtable,并且没有任何元素有 0)
-
@hype 回复您的补充问题 - 这就是我的回答(和其他几个人)所说的。
-
只是好奇,如果我给会发生什么,
virtual void func() = 100;
标签: c++ abstract-class pure-virtual