1 命名空间#
命名空间可作为附加信息来区分不同库中相同名字的函数、类、变量等,本质上命名空间定义了一个范围。
1.1 定义命名空间#
使用关键字namespace,后跟命名空间的名称。
namespace ns_name
{
//code
}
调用该命名空间内的函数或变量等,如下:
ns_name::code;
2 类#
定义类需要关键字class,然后指定类的名称,类的主体包含在一对花括号内,主体包含类的成员变量和成员函数。
2.1 访问数据成员#
使用 .
来访问类中的变量。
2.2 类访问修饰符#
数据封装是面向对象编程重要特点之一,防止函数直接访问类内部成员。类成员访问限制是通过在类主体内部对各个区域标记 public、private、protected
来指定的。成员和类的默认访问修饰符是 private
。
2.2.1 public#
公有成员变量在程序中不需要使用任何成员函数即可设置和获取值。
2.2.2 private#
私有成员在类的外部是不可访问的,只有类和友元函数可以访问私有成员。
默认情况下,类的所有成员都是私有的。
实际操作中,一般在私有区域定义数据,在公有区域定义相关函数,便于在类的外部也可以访问数据。
2.2.3 protected#
protected 成员与 private 成员类似,但 protected 成员在派生子类中是可访问的。
2.2.4 继承中的特点#
- private成员只能被本类成员和友元访问,不能被派生类访问
- protected成员可以被派生类访问