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+
本文介绍了C++中的const成员函数,讲解了其在对象不变性中的作用,以及const对象与非const对象调用成员函数的规则。接着讨论了内联函数的概念,它如何提升程序效率以及使用限制。然后,阐述了友元函数和友元类的作用,指出它们在封装性上的影响。此外,还详细说明了静态成员的特性及其使用。最后,探讨了构造函数和拷贝赋值运算符在不同情况下的调用情况。
最低0.47元/天 解锁文章
265

被折叠的 条评论
为什么被折叠?



