C++ 访问同一类的对象的私有元素
这合法吗?如果没有,以下代码是否允许此操作C++ 访问同一类的对象的私有元素,c++,class,private,private-members,C++,Class,Private,Private Members,这合法吗?如果没有,以下代码是否允许此操作 class Foo { friend class Foo; } 那是多余的。Foo已经拥有访问所有Foo成员的权限。两个Foo对象可以访问彼此的成员 class Foo { public: int touchOtherParts(const Foo &foo) {return foo.privateparts;} private: int privateparts; }; Foo a,b; b.touchOtherParts
class Foo
{
friend class Foo;
}
那是多余的。Foo已经拥有访问所有Foo成员的权限。两个Foo对象可以访问彼此的成员
class Foo {
public:
int touchOtherParts(const Foo &foo) {return foo.privateparts;}
private:
int privateparts;
};
Foo a,b;
b.touchOtherParts(a);
上面的代码可以正常工作。B将访问a的私有数据成员。这是多余和不必要的。此外,我在g中得到以下警告++
warning: class ‘Foo’ is implicitly friends with itself
是,类
Foo
的对象访问另一类Foo
对象的私有成员是合法的。这对于复制构造和赋值是经常需要的,并且不需要特殊的朋友声明。 类本身是有意义的,如果它们是模板,因为每个不同参数的实例化都是不同的类。 @亚历克斯:这是一个古老的C++双关语,C++可能是唯一允许朋友接触个人隐私的语言: