Something about virtual function and pure virtual function
来源:互联网 发布:网络流行语2014 编辑:程序博客网 时间:2024/05/21 06:03
Firstly, let's demonstrate a fact that virtual function must be implemented.
class A {public:A() { a = 0; } virtual void a1(); int a2();private: int a;};int main() {A a;return 0;}
A strange error about construction occurs. Now, let's see the correct version.
class A {public:A() { a = 0; } virtual void a1() { a = 1;} int a2();private: int a;};int main() {A a;return 0;}It is right. By the way, you can see the common member function could avoid implementation.
In contrast, the pure virtual function mustn't be implemented.
class A {public:A() { a = 0; } virtual void a3() =0 { a = 1;}private: int a;};int main() {return 0;}
Another example:
class A {public:A() { a = 0; } virtual void a3() =0;private: int a;};class B: public A {public:B(): A() { }};class C: public B {public:C(): B() {}void a3() {}};int main() {B b;C c;return 0;}
However, the correct should be
class A {public:A() { a = 0; } virtual void a3() =0;private: int a;};class B: public A {public:B(): A() { }};class C: public B {public:C(): B() {}void a3() {}};int main() {//B b;C c;return 0;}
From this experiment, we can see that pure virtual function doesn't necessarily be implemented in its subclass and hence its subclass is still a virtual class.
- Something about virtual function and pure virtual function
- c / c++ virtual function and pure virtual function summarize
- Pure virtual function called
- pure virtual function called
- Pure Virtual Function Called
- pure virtual function call
- Pure virtual function called
- C++ virtual function (not pure virtual function)
- The error “Pure Virtual Function Called” about C++
- R6025 - pure virtual function call
- R6025 pure virtual function call
- C++: Pure Virtual Function Called
- pure virtual function&…
- C++ pure virtual function call
- R6025 pure virtual function call
- What is a pure virtual function?
- Pure virtual function call error探讨
- "Pure Virtual Function Called": An Explanation
- Java读取网页数据并分析
- 用mirror替换eclipse默认更新的地址,加速软件安装、更新
- HDFS的文件操作流(3)——写操作(客户端)
- java 线程退出问题(interrupt()与中断标志)
- android的HAL第二种调用hal方法中的APP 测试程序(属于APP层)代码的实现:
- Something about virtual function and pure virtual function
- Wind-Up Knight:发条骑士冒险记
- Skin hierachy
- 项目的总结:
- [Java][JavaScript]字符串数组与字符串之间的互转(join/split)
- C#利用API,做像QQ,MSN 一样的右下角弹出窗体!
- C#之程序集
- 深入理解指针函数
- Ruby语言 (三)