软件编程
位置:首页>> 软件编程>> C语言>> C++ 中const修饰虚函数实例详解

C++ 中const修饰虚函数实例详解

作者:lqh  发布时间:2022-01-06 16:40:47 

标签:C++,const

C++ 中const修饰虚函数实例详解

【1】程序1


#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修饰成员函数,也属于函数重载的一种范畴。

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

来源:http://www.cnblogs.com/Braveliu/p/3622124.html

0
投稿

猜你喜欢

手机版 软件编程 asp之家 www.aspxhome.com