小众知识

首页 > 正文

突发奇想:考虑在类中引进一种secret成员,即使是同类对象之间也不可互相访问

这样一来,友元的存在就有了更多的意义:给友元以访问secret成员的权限。
这样是不是很符合自然界中某些事物的行为,比如人?  

 Wolf0403 发表于:2003-09-18 16:33:32
得分:10 

呵呵,模拟比 private 更低的权限,比较困难。。。
而且,有多少意义?我们只是通常“假装”不知道而已。通过读取内存,什么信息得不到?呵呵 

 magiclamp 发表于:2003-09-18 16:44:48
得分:7 

必要吗,可以吗,可行吗? 

 Flamesong 发表于:2003-09-18 17:40:10
得分:10 

private是给编译器看的。 

 herrycsdn 发表于:2003-09-19 02:47:17
得分:7 

感觉好象没有太大的用途
不过楼主厉害,敢想别人说不想,呵呵 

 fnzh 发表于:2003-09-19 16:51:49
得分:10 

在对象层次上实现封装,这个编译器是无能为力了,因为对象是运行时才存在的,而编译器是静态编译的。从这个角度看来,似乎解释型语言可以考虑实现这个。 

 lemon520 发表于:2003-09-19 19:01:13
得分:5 

有意思!
不过不太理解楼主为什么要这么做! 

 ttlb 发表于:2003-09-19 19:05:27
得分:10 

下一个C++标准会不会使用搂主的建议也不一定。 

 ljianq 发表于:2003-09-20 15:25:14
得分:6 

在说明情况下,需要这样呢?楼主能不能说说它的意义? 

 zhuixe 发表于:2003-09-20 15:43:45
得分:10 

即使secret,程序员也是知道的,否则这个程序就是一个机器人了, 

 gernal_dn 发表于:2003-09-20 16:40:56
得分:10 

就是说朋友比孩子的权限大!
其实现有的class也可以实现的:兄弟关系。
class father{
...
}
class child1:public father{
...
int function1();
}
class child2:public father{
...
int function2();
}
这样,function1()相对于child2不就是secret的么?


 klbt 发表于:2003-09-21 11:10:57
得分:5 

佩服楼主超人的想象力! 

 tongjun 发表于:2003-09-24 12:39:26
得分:0 

我只是认为同类对象间也应该有所保留,譬如我们可以写出一个这样的类:
class A
{

 tongjun 发表于:2003-09-24 12:47:22
得分:0 

按错了。
class A
{
   public:
     setanotherA(A&);
   ...
}
这样同类对象间就可以互相篡改,这不是很可怕吗

 liao2001 发表于:2003-09-24 12:59:11
得分:10 

呵呵,一切都是由开发者来控制的,
setanotherA(A&);
如果进行对象间互相修改的话,这个类的封装就值得怀疑,相当于一个对象包含另一个对象的职责,这从设计的角度来说,未免。。。 

上一篇:要在VC下作个界面,能在自己的界面里打开word文档,改怎么作啊?
下一篇:高斯消元法

分享到: