一点小知识,mark一下:
virtual b() const = 0;
C++源码函数声明后跟const的意义
virtual xxx() const = 0;
后面加个const 表明该函数不会改名成员函数的值!该函数可以被常量对象访问(const)。
注意 加了const 与不加const的函数是两个不同的函数!
用个例子说明其区别:
#include <iostream>
class A
{
public:
void temp()
{
std::cout<<"call temp()\n";
}
void temp() const
{
std::cout<<"call temp() const \n";
}
};
void main()
{
const A a; //a常量对象,其只能访问常量函数
a.temp(); //访问 temp() const; 如果A中没有 temp() const 函数,编译器报错
A b; //非常量对象
b.temp(); //访问 temp()
}