我们知道,类的常成员函数 尾部 加了 const 关键字,而且,声明 和 定义处 必须 都加 const 关键字。
举个例子说明:
//a.h
class A
{
public:
A(){}
~A(){}
void display() const;
};
//a.cpp
#include "a.h"
#include <iostream>
void A::display() const
{
std::cout << "haha" << "\n";
}
此文,主要说明 为什么声明 和 定义处必须 都加的问题,其他若有看不懂的地方,建议多翻翻书。
答: 我们知道,函数的声明 和 定义 必须匹配,而 如下两个函数是 2个 不同的函数,
举例:
void display();
void display() const;
若在 类的 成员函数 声明处 尾部加了 const,为了匹配, 类外定义处也必须加 const 关键字!!!
总结: 这个问题的回答,一句话,为了函数匹配,所以,两处都加 const(常成员函数),或者 两处都不加const(非常成员函数)。