C++ 虚函数的两个例子
Posted howld
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C++ 虚函数的两个例子相关的知识,希望对你有一定的参考价值。
1. 第一个例子是朋友告诉我Qt中的某个实现
1 #include <iostream>
2
3 // Qt中的某个实现
4 class A{
5 public:
6 A() = default;
7 virtual ~A() = default;
8
9 virtual void add(){ std::cout << "A add" << std::endl; };
10
11 void print(){ this->add(); };
12 };
13
14 class B : public A{
15 public:
16 B() = default;
17
18 virtual void add(){ std::cout << "B add" << std::endl; }
19 };
20
21 int main(int argc, char **argv){
22 B b;
23 b.print(); // B add
24
25 return 0;
26 }
2. 第二个例子是我从SFML中看到的某个实现
1 #include <iostream>
2
3 // SFML中实现m_window.draw(b)
4 class A{
5 public:
6 A() = default;
7 virtual ~A() = default;
8
9 virtual void add() = 0;
10 };
11
12 class B : public A{
13 public:
14 B() = default;
15
16 private:
17 virtual void add(){ std::cout << "B add" << std::endl; }
18 };
19
20 void draw(A &a){
21 a.add();
22 }
23
24 int main(int argc, char **argv){
25 B b;
26
27 draw(b); // B add
28
29 return 0;
30 }
以上是关于C++ 虚函数的两个例子的主要内容,如果未能解决你的问题,请参考以下文章