C++ 类 定义、访问控制、友元
一、类的定义
类定义的一半格式如下:
class name
{
public:
type fun1(params);
type data1;
private:
type fun2(params);
type data2;
};
代码示例如下:
class Animal
{
public:
void getName()
{
return name;
}
private:
string name;
};
二、访问控制
1 访问说明符
使用访问说明符可以加强类的封装性。
- 定义在public说明符后面的成员在整个程序内可被访问,public成员用来定义类的接口。
- 定义在private说明符后面的成员只可在类内访问,不能被使用类的代码访问,private部分封装了(即隐藏了)类的实现细节。
2 class和struct关键字
使用class定义的类若没有使用访问说明符控制,则它的成员默认是private的。使用struct定义的类若没有使用访问说明符控制,则它的成员默认是public的。这是class和struct关键字定义类时唯一的区别。
三、友元
如果一个类想让其他类或者函数访问它的非公有成员,可以令其他类或函数成为它的友元。
在类中增加一条以friend关键字开头的声明语句即可。
格式如下:
class A
{
friend void func();
public:
int geta() {return a;}
private:
int a:
}
需要注意的是,友元声明仅仅指定访问权限,而非通常意义上的函数声明。如果使用类的用户需要使用友元函数,需要在友元函数声明外再专门做一次函数声明。
为了使友元对类的用户可见,通常将友元函数的声明和类的声明放在同一个头文件中。