zoukankan      html  css  js  c++  java
  • const修饰虚函数

    【1】程序1

     1 #include <iostream>
     2 using namespace std;
     3 
     4 class Base
     5 {
     6 public:
     7     virtual void print() const = 0;
     8 };
     9 
    10 class Test : public Base
    11 {
    12 public:
    13     void print();
    14 };
    15 
    16 void Test::print()
    17 {
    18     cout << "Test::print()" << endl;
    19 }
    20 
    21 void main()
    22 {
    23     // Base* pChild = new Test(); //compile error!
    24     // pChild->print();
    25 }

    【2】程序2

     1 #include <iostream>
     2 using namespace std;
     3 
     4 class Base
     5 {
     6 public:
     7     virtual void print() const = 0;
     8 };
     9 
    10 class Test : public Base
    11 {
    12 public:
    13     void print();
    14     void print() const;
    15 };
    16 
    17 void Test::print()
    18 {
    19     cout << "Test::print()" << endl;
    20 }
    21 
    22 void Test::print() const
    23 {
    24     cout << "Test::print() const" << endl;
    25 }
    26 
    27 void main()
    28 {
    29     Base* pChild = new Test();
    30     pChild->print();
    31 }
    32 /*
    33 Test::print() const
    34 */

    【3】程序3

     1 #include <iostream>
     2 using namespace std;
     3 
     4 class Base
     5 {
     6 public:
     7     virtual void print() const = 0;
     8 };
     9 
    10 class Test : public Base
    11 {
    12 public:
    13     void print();
    14     void print() const;
    15 };
    16 
    17 void Test::print()
    18 {
    19     cout << "Test::print()" << endl;
    20 }
    21 
    22 void Test::print() const
    23 {
    24     cout << "Test::print() const" << endl;
    25 }
    26 
    27 void main()
    28 {
    29     Base* pChild = new Test();
    30     pChild->print();
    31 
    32     const Test  obj;
    33     obj.print();
    34 
    35     Test obj1;
    36     obj1.print();
    37 
    38     Test* pOwn = new Test();
    39     pOwn->print();
    40 }
    41 
    42 /*
    43 Test::print() const
    44 Test::print() const
    45 Test::print()
    46 Test::print()
    47 */

    备注:一切皆在代码中。

    总结:const修饰成员函数,也属于函数重载的一种范畴。

    Good Good Study,  Day  Day  Up.

    顺序  选择  循环  总结

  • 相关阅读:
    Java8新特性一览表
    FastDFS 单机部署指南
    EntityManager的Clear方法的使用
    元类
    python中的函数的分类
    python中的多任务
    正则表达式
    GIL和copy
    文件管理
    logging日志模块配置
  • 原文地址:https://www.cnblogs.com/Braveliu/p/3622124.html
Copyright © 2011-2022 走看看