• C++虚函数指针(virtual)


    1. #include"iostream"
    2. using namespace std;
    3. class BoidTea{
    4. public:
    5. // 打水
    6. // // 这是一个指向函数入口的指针,目前没有任何可以指向的函数入口,默认为0(nullptr),如果继承这个类就会使用继承这个类的函数入口
    7. virtual void fetchWater() =0;
    8. // 准备茶叶
    9. // // 这是一个指向函数入口的指针,目前没有任何可以指向的函数入口,默认为0(nullptr),如果继承这个类就会使用继承这个类的函数入口
    10. virtual void prepareTea() = 0;
    11. // 泡茶
    12. // // 这是一个指向函数入口的指针,目前没有任何可以指向的函数入口,默认为0(nullptr),如果继承这个类就会使用继承这个类的函数入口
    13. virtual void makeTea() = 0;
    14. // 喝茶
    15. // // 这是一个指向函数入口的指针,目前没有任何可以指向的函数入口,默认为0(nullptr),如果继承这个类就会使用继承这个类的函数入口
    16. virtual void drinkTea() = 0;
    17. // // 虚析构函数
    18. // 这是一个指向虚析函数入口的指针,目前有一个函数入口可以执行,默认为~BoidTea() ,如果继承这个类就会使用继承这个类的函数入口
    19. // virtual ~BoidTea(){
    20. // cout<<"clean water and tea"<
    21. // }
    22. // // 纯虚析构函数
    23. // // 这是一个指向虚析函数入口的指针,目前没有任何可以指向的函数入口,默认为0(nullptr),如果继承这个类就会使用继承这个类的函数入口
    24. // virtual ~BoidTea() = 0;
    25. };
    26. class TieGunyin : public BoidTea{
    27. public:
    28. // 这样一个指向函数入口的指针,目前指向fetchWater()函数入口,如果有其他类继承TieGunyin类,就会使用继承类的fetchWater函数入口
    29. virtual void fetchWater(){
    30. cout<<"I fetch water in my pool"<
    31. }
    32. virtual void prepareTea(){
    33. cout<<"I prepare some Tie guanyin tea"<
    34. }
    35. virtual void makeTea(){
    36. cout<<"I make Tea"<
    37. }
    38. virtual void drinkTea(){
    39. cout<<"The tie guanyin tea is vary good ,next time i will buy this again"<
    40. }
    41. void start()
    42. {
    43. fetchWater();
    44. prepareTea();
    45. makeTea();
    46. drinkTea();
    47. }
    48. };
    49. int main(int argc,char *argv[])
    50. {
    51. TieGunyin *t=nullptr;
    52. t = new TieGunyin;
    53. t->start();
    54. delete t;
    55. return 0;
    56. }

    virtual 关键字实际上是一个类中指向函数入口的指针。

  • 相关阅读:
    Facebook的AI革命:人工智能如何改变社交体验
    我的 2023 年,35岁、父亲肺癌,失业,失恋、上岸
    访问 github 问题解决方法
    数据降维算法isomap mds
    在 Rainbond 上使用 Curve 云原生存储
    NXP官方开发板uboot编译
    【李航统计学习笔记】第八章:adaboost
    React Hook总结
    介绍一下浏览器的缓存(Expires, Cache-Control等)
    Python之数据库(MYSQL)连接
  • 原文地址:https://blog.csdn.net/weixin_53064820/article/details/126225182