const 成员函数
在成员函数后面加const,const修饰this指针所指向的对象,也就是保证调用这个const成员函数的对象在函数内不会被改变。
#include<iostream>
using namespace std;
class Data //日期类
{
public:
Data(int year=1998, int month=1, int day=1)
{
_year = year;
_month = month;
_day = day;
}
void show()
{
cout << "正常函数:" ;
cout << _year << "-" << _month << "-" << _day << endl;
}
void show() const
{
cout << "const 修饰函数:" ;
cout << _year << "-" << _month << "-" << _day << endl;
}
private:
int _year;
int _month;
int _day;
};
int main()
{
Data d1(2018, 1, 1); //调用非const成员函数
const Data d2(2018, 6, 11);//调用const成员函数
d1.show();//d1.show(&d1)->Data*
d2.show();//d2.show(&d2)->const Data*
system("pause");
return 0;
}
注意以下几种场景:
1.const对象不可以调用非const成员函数,可以调用const成员函数。
2.非const对象可以调用非const成员函数和const成员函数。
3.const成员函数内不可以调用其他非const成员函数(const Data *this不可以给Data *this)。
4.非const成员函数内可以调用其他const成员函数(Data *this可以给const Data *this)。
inline(内联)
以inline修饰的函数叫做内联函数,编译时C+