#include <iostream>
class abc
{
private:
double x;
public:
abc(double y);
abc();
~abc();
abc& Comp(abc& n);
void show();
};
abc::abc(double y)
{
x=y;
}
abc::abc()
{
x=0.0;
}
abc::~abc()
{
}
abc& abc::Comp(abc& n)
{
if (n.x>x)
return n;
else
return *this;
}
void abc::show()
{
std::cout<<"x="<<x<<std::endl;
}
int main()
{
abc A=abc(55.43);
abc B=abc();
abc *p=&B.Comp(A);
p->show();
return 0;
}
//举个小栗子,代码中有一个类abc,一个私有成员x,一个对比两个对象的函数Comp和一个显式函数show
//上面的程序,不带任何const限定,程序可以通过编译并正常运行
//测试工具:DEV C++
//通过试验来了解何时使用const来限定成员函数,以及哪些限定位置是有联系的!
//我们知道,如果创建一个const类型的对象,那么调用它的成员函数需要进行const限定,因为无法保证该成员函数的代码是否会修改对象的数据,这就是需要使用const的时机!
//第一次实验,我们将Comp()函数的参数,改成const限定的参数,即“保证传递的引用对象不会被无意间修改”
#include <iostream>
class abc
{
private:
double x;
public:
abc(double y);
abc();
~abc();
abc& Comp(const abc& n); //此处参数添加cosnt限定
void show();
};
abc::abc(double y)
{
x=y;
}
abc::abc()
{
x=0.0;
}
abc