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中的所有成员。