c++ 中, void att()const; 与 void att(); 有什么区别?? 说得越详细越好.

来源:百度知道 编辑:UC知道 时间:2024/06/21 21:57:59

如果在类中的话第一个是常成员函数,定义常成员函数能保证,在函数内不会修改类的数据,体现封装性,但是可以访问类的数据!它常常作为常对象的接口!被长对象调用,因为常对象是不能调用(像: void att()这样的)非常成员函数(除了构造函数),所以一般来说常成员函数(void att()const)是针对长对象而设计的(),没有别的意义,不要把它看的很复杂。还有const是可以构成函数重载的。 void att(); 是一般的函数,相信你不会不熟悉!下面是不完全的例子
class base
{
private:
int i;
public:
base(int i){this->i=i;}
// void print(){cout<<i<<endl;}写成这样会出错
void print()const{cout<<i<<endl;}

};
base const a(1);
a.print();
定义函数const 的函数如:void att()const;只能是成员函数;
而void att();没有特别要求

加上const表示函数att中不可以修改任何数据,只可以作为输出

后面有const的函数如果是类的成员函数,则表示该函数不能对类的对象做任何改变。
如果不是类的成员函数,表示对输入的参数不能直接修改。

好问题,留名备用

还可以作返回bool值