const 用在函数后
类的成员函数后面加 const,表明这个函数不会对这个类对象的数据成员(准确地说是非静态数据成员)作任何改变。C++支持常量性不同的重载,例如下面的GetData函数。
#include "Test.h" Test::Test(void) { data=0; } Test::~Test(void) { } const int Test::GetData() const { int y=0; //return y++; 这个可以,因为y不是成员变量 //return data++;编译不通过,data是成员变量,不可以在函数内改变 return data; } int Test::GetData() { return ++data;//成员函数后面没有const,可以修改成员变量的值。 }
const 对象调用const 成员函数,no const调用 no const成员函数。
int main(int arg,char * agrs) { const Test* test=new Test(); Test* testno=new Test(); int data=test->GetData(); std::cout<<"const"<<data<<endl; std::cout<<"no const"<<testno->GetData()<<endl; getchar(); return 0; }
结果是:
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步