首先创建一个类,方便介绍常对象以及常方法
class Test
{
public:
void Test1(int a)const //常方法 其中this指针由Test* const--> const Test*const
{
std::cout<<"Test()const"<<std::endl;
ma = a; //error 常方法不能修改普通成员变量的值
int md = a; //可以访问a,但不能修改a的值
int me = mc; // const函数访问const成员变量
}
void Test2()
{
int mf = mc; //普通函数访问const成员变量
std::cout<< "Test2(int,int)" <<std::endl; //输出该函数
}
Test(int a,int b,int c):ma(a),mb(b),mc(c);//构造函数(常成员只能由初始化表进行初始化)
{
std::cout<< "Test(int)" <<std::endl; //输出该函数
}
private:
int ma;
int mb;
const int mc; //C++中常变量必须初始化(类中的常变量可以使用构造函数的初始化表进行初始化)
}
int main()
{
Test tmp(10,20,30); //调用构造函数生成对象tmp
tmp.Test1(10); //const函数访问常数据成员变量
tmp.Test2(); //普通函数访问常数据成员变量
return 0;
}
常对象:常对象只能调用该类中的常成员函数
常方法:
①可以访问对象中的常成员,也可以访问普通成员
②该方法不允许修改任何数据的值
常数据成员:
①只能通过构造函数的初始化表就行初始化,其他方式皆不允许
②可以被const成员函数访问,也可以被该类中普通函数访问(但不允许修改其中的值)