访问函数管的还真宽!

baifanmvp 2008-11-18 02:30:40
访问函数管的还真宽,自己的小弟要管着不让别人改变它,小弟的小弟也不能让别人动,真是太可恶了!!!

#include"iostream"
class aa
{
public:
int i;
void f2()const
{
// i=1;
}
void f1()const
{
f2();
}
};
void main()
{
aa i;
}

...全文
80 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
就呆在云上 2008-11-18
  • 打赏
  • 举报
回复
感慨?
呵呵
你整个类里面的i是公有的啊
呵呵
void main()
{
aa i;
i.i = 10;
}



这样就没有谁管了啊
哎,其实我就喜欢裸奔
Vegertar 2008-11-18
  • 打赏
  • 举报
回复
也不是不能改变,有两个方法:利用mutable, 或者const_cast<>

#include "iostream"

class aa
{
public:
mutable int i;

void f2()const
{
i=1;
}
void f1()const
{
f2();
}
};

int main()
{
aa i;
}




//

#include "iostream"

class aa
{
public:
int i;

void f2()const // 有一个隐式参数 const aa* const this
{
const_cast<aa*>(this) -> i = 1;
}
void f1()const
{
f2();
}
};

int main()
{
aa i;
}

qqwx_1986 2008-11-18
  • 打赏
  • 举报
回复

#include"iostream"
class aa
{
public:
int i;
void f2()const//成员函数后面加个const表示禁止次函数改变类中的成员变量,如果想改变i的值
//去掉const即可,既然你函数后面加了个const又去该成员变量干嘛,自相矛盾不是
{
// i=1;
}
void f1()const
{
f2();
}
};
void main()
{
aa i;
}

64,675

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧