作者:ooleysciacca | 来源:互联网 | 2024-11-02 10:09
本文深入探讨了C++中使用`const`修饰符的虚函数实例。通过具体的代码示例,详细解释了如何在基类和派生类中定义和实现`const`修饰的虚函数。文章首先介绍了`const`修饰符在成员函数中的作用,然后通过一个包含基类`Base`和派生类`Test`的示例,展示了如何正确地声明和重写`const`虚函数。此外,还讨论了`const`修饰符对函数调用和对象状态的影响,帮助读者更好地理解和应用这一重要特性。
C++中const修饰虚函数实例详解
【1】程序1
#includeiostream
usingnamespacestd;
classBase
{
public:
virtualvoidprint()cOnst=0;
};
classTest:publicBase
{
public:
voidprint();
};
voidTest::print()
{
cout"Test::print()"endl;
}
voidmain()
{
//Base*pChild=newTest();//compileerror!
//pChild-print();
}
【2】程序2
#includeiostream
usingnamespacestd;
classBase
{
public:
virtualvoidprint()cOnst=0;
};
classTest:publicBase
{
public:
voidprint();
voidprint()const;
};
voidTest::print()
{
cout"Test::print()"endl;
}
voidTest::print()const
{
cout"Test::print()const"endl;
}
voidmain()
{
Base*pChild=newTest();
pChild-print();
}
/*
Test::print()const
*/
【3】程序3
#includeiostream
usingnamespacestd;
classBase
{
public:
virtualvoidprint()cOnst=0;
};
classTest:publicBase
{
public:
voidprint();
voidprint()const;
};
voidTest::print()
{
cout"Test::print()"endl;
}
voidTest::print()const
{
cout"Test::print()const"endl;
}
voidmain()
{
Base*pChild=newTest();
pChild-print();
constTestobj;
obj.print();
Testobj1;
obj1.print();
Test*pOwn=newTest();
pOwn-print();
}
/*
Test::print()const
Test::print()const
Test::print()
Test::print()
*/
备注:一切皆在代码中。
总结:const修饰成员函数,也属于函数重载的一种范畴。
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
您可能感兴趣的文章:C++中const对象与const成员函数的实例详解浅谈C++ExplicitConstructors(显式构造函数)C++const修饰变量和修饰函数介绍C++中const用于函数重载的示例代码