c++ 类 求解

来源:百度知道 编辑:UC知道 时间:2024/05/24 08:11:02
class a
{
private:
int i;
int fun(a &a);

};

a::fun(a &a)
{
a::i++; 这里修改的 i 是参数的私有变量,可不可以禁止这样的修改?
}

除了这种形式以外,还有其他方法吗?
a::fun(const a &a)

谁给解释一下, 谢谢!!!
是这样

class a
{
private:
int i,j;
int fun(a &a);

};

几位仁兄,可能还是没明白小弟要问的意思

意思是 在一个类的成员函数里对类里的一个变量可不可以禁止修改,这里就是要求不能修改 i,
同一个函数里可以修改其他成员变量 比如 j。
那么对于 i 应该如何处理,用什么办法?
a::fun(a &aa)
{
aa.j++; //允许
aa.i++; //不允许?
}

你不写访问它的语句,外界理所当然地就被禁止向它发出任何请求,间接上禁止被修改了,但你一定要写访问它的语句的话,规则不可能禁止类本身的成员访问它的,因为如果规则禁止了的话,那它存在的意义是什么?用来装饰?没理由的嘛,

1.
可以将fun函数定义成指向对象的常函数:
int fun(a &)const;这样的函数不能改变类中的成员数据。
2.
也可以定义函数时形参搞成常引用:
int fun(const a &);这样的函数不能修改形参。
3.
将类定义为const类

嗯,楼上的说的都没错,可是,这个类里都是私有成员,产生的对象怎么调用成员变量、成员函数啊?!

也可以用const int fun(a &a); ,或者直接把类a定义成const

这个的确没办法

没办法