- #include <iostream>
- using namespace std;
- class Base
- {
- public:
- virtual void print() const = 0;
- };
- class Test : public Base
- {
- public:
- void print();
- };
- void Test::print()
- {
- cout <<"Test::print()" << endl;
- }
- void main()
- {
- // Base* pChild = new Test(); //compile error!
- // pChild->print();
- }
[2] 程序 2
- #include <iostream>
- using namespace std;
- class Base
- {
- public:
- virtual void print() const = 0;
- };
- class Test : public Base
- {
- public:
- void print();
- void print() const;
- };
- void Test::print()
- {
- cout <<"Test::print()" << endl;
- }
- void Test::print() const
- {
- cout << "Test::print() const" << endl;
- }
- void main()
- {
- Base* pChild = new Test();
- pChild->print();
- }
- /*
- Test::print() const
- */
[3] 程序 3
- #include <iostream>
- using namespace std;
- class Base
- {
- public:
- virtual void print() const = 0;
- };
- class Test : public Base
- {
- public:
- void print();
- void print() const;
- };
- void Test::print()
- {
- cout <<"Test::print()" << endl;
- }
- void Test::print() const
- {
- cout << "Test::print() const" << endl;
- }
- void main()
- {
- Base* pChild = new Test();
- pChild->print();
- const Test obj;
- obj.print();
- Test obj1;
- obj1.print();
- Test* pOwn = new Test();
- pOwn->print();
- }
- /*
- Test::print() const
- Test::print() const
- Test::print()
- Test::print()
- */
备注: 一切皆在代码中.
总结: const 修饰成员函数, 也属于函数重载的一种范畴.
来源: https://www.jb51.net/article/115149.htm