0
A
回答
0
虚函数具有函数体。
重载可以通过Vartual函数完成。
它被定义为:virtual int runFun();
而
纯Vartual功能对函数体。
重载是必须在Pure Vartual功能。
它被定义为:virtual int runFun()= 0;
2
纯虚函数是一个可以声明如下:
class Foo {
virtual void bar() = 0;
};
bar
是Foo
纯虚拟成员。它没有实现(因此= 0
),并且不能被调用。从Foo
继承的任何类必须为提供bar
的实现。这是唯一的区别:父类没有纯虚拟的实现,所以派生类必须提供它。 (这是一个例外,但很少使用。)
否则,它的工作方式完全相同。鉴于:
class Baz : public Foo {
virtual void bar() {}
};
的Baz
任何实例都可以与Foo*
类型的指针进行访问和Baz::bar
将被调用。如果Foo::bar
是纯虚拟的,则不能实例化Foo
,并且对Foo::bar
的调用将会出错。如果Foo::bar
是不纯,然后提供给Foo::bar
实施,将被要求将呼吁Baz
实例Foo
和Baz::bar
情况下,即使是通过Foo*
。
(纯虚也可以实现,这样,例如,Baz::bar
可以调用Foo::bar
,但这种情况并不常见。)
相关问题
- 1. 虚拟功能
- 2. 虚拟功能
- 3. 儿童班的虚拟和非虚拟功能的区别
- 4. 覆盖非虚拟功能和虚拟功能有什么区别?
- 5. 虚拟功能与回调
- 6. Overriden虚拟功能
- 7. C++虚拟功能
- 8. 覆盖虚拟功能到非虚拟功能可以吗?
- 9. 虚拟功能常量vs虚拟功能非常量
- 10. 虚拟功能的超载
- 11. 要求父虚拟功能
- 12. 优势虚拟功能
- 13. 虚拟功能和绕行
- 14. 虚拟功能错误?
- 15. 虚拟功能问题
- 16. 虚拟功能故障
- 17. 虚拟功能输出?
- 18. 功能为虚拟变量
- 19. C++虚拟(密封)功能
- 20. C++虚拟功能无法识别
- 21. 类的大小与虚拟功能
- 22. 虚拟功能不能正常工作
- 23. 单个虚拟桌面如何跟踪新的虚拟功能?
- 24. 具有虚拟和非虚拟功能的unique_ptr :: get()函数
- 25. 非虚拟接口 - 如何调用正确的虚拟功能
- 26. 使用虚拟功能和重新定义之间的区别
- 27. 在c + +的虚拟功能的概念?
- 28. 带空虚的虚拟方法和纯虚拟方法有什么区别?
- 29. 消除未使用的虚拟功能
- 30. 添加虚拟功能的问题