c++的类成员权限以及友元

来源:互联网 发布:网络商业通 编辑:程序博客网 时间:2024/06/14 02:01

c++中类是一种抽象的数据类型,里面包含成员变量(一般定义为私有)和一些成员函数(一般定义为公有),对于用户来说不需要了解类中具体的代码,只需要知道类的功能以及如何使用就ok了。这样就实现了类数据的隐藏和封装。

类大致包含私有(private),公有(public),保护的(protected)。访问权限如下:

class默认的成员权限为private(struct默认的成员权限为public):

private:只有该类的成员函数可以访问到;

public:对任何类都是公开的;

protected:只有该类以及类的子类中的成员函数可以访问。

以上阐述的权限也有一个特殊的情况:友元函数和友元类。

如果类外的函数A需要访问类中的私有成员,我们需要在类定义时在私有或者公有的部分声明该函数;eg:

class B {

private:

...

public:

friend void A(参数);

}

也可以在private中声明。是一样的。友元并不是类的成员函数,在实现的时候不需要加“::”作用域。另外友元不能继承。特别注意友元在实现的时候不能访问类的私有成员。 

但它可以访问类对象的私有成员。

如果类C想要访问类B的所有成员,可以做如下声明:

class B{

private:

...

public:

friend class C;

}

这样类C就是B的友元类。可以访问类B中的所有成员。





0 0
原创粉丝点击