1、对象的生存期
静态生存期:这种生存期与程序的运行期相同,在文件作用域中声明的对象具有这种生存期,在函数内部声明静态
生存期对象,要冠以关键字 static。
动态生存期:块作用域中声明的对象时动态生存期的对象(习惯称局部生存期对象),开始于程序执行到声明点时,
结束于命名该标识符的作用域结束处。
2、静态成员
静态数据成员:用关键字 static 声明,该类的所有对象维护该成员的同一个拷贝,必须在类外定义和初始化,
用(::)来指明所属的类。
静态成员函数:类外代码可以使用类名和作用域操作符来调用静态成员函数,静态成员函数只能引用属于该类
的静态数据成员或静态成员函数。
实例:
class A
{
public:
static void f(A a);
private:
int x;
};
void A::f(A a)
{
cout << x; //对 x 的引用是错误的
cout << a.x; //正确
}
3、类的友元
友元是 C++ 提供的一种破坏数据封装和数据隐藏的机制。通过将一个模块声明为另一个模块的友元,一个模块能够引用
到另一个模块中本是被隐藏的信息。可以使用友元函数和友元类。