定义
- 静态成员:静态成员是类的成员,它们在类定义中声明,但与类的实例无关。它们可以通过类名和静态成员函数访问,而不是通过类的实例。静态成员可以是数据成员(变量)或函数成员(函数)。在类定义中,可以使用关键字
static
来声明静态成员。 - 友元:友元是C++中的一种特殊关系,它允许一个类访问另一个类的私有和保护成员。通过在类定义中使用关键字
friend
来声明友元,可以指定一个友元类或友元函数。友元关系是单向的,即如果类A是类B的友元,则类B不一定是类A的友元。 - 命名空间:命名空间是一种组织代码的方式,它避免了命名冲突并提供了代码的可读性。在C++中,可以使用关键字
namespace
来定义命名空间。命名空间可以包含变量、函数和其他类型定义。通过使用命名空间前缀,可以在其他代码中引用该命名空间中的标识符。
应用举例
废话不多说,直接上列子
// 包含命名空间
namespace ExampleNamespace {
// 声明一个类
class ExampleClass {
public:
// 静态数据成员
static int staticVariable;
// 静态成员函数
static void staticFunction() {
std::cout << "This is a static function." << std::endl;
}
// 构造函数
ExampleClass(int value) {
// 使用友元访问静态数据成员
ExampleClass::staticVariable = value;
}
// 普通成员函数
void normalFunction() {
std::cout << "This is a normal function." << std::endl;
}
// 友元类
friend class ExampleFriendClass;
};
// 定义命名空间中的变量
int ExampleClass::staticVariable = 0;
}
// 在另一个类中使用友元关系访问静态数据成员
class ExampleFriendClass {
public:
void accessStaticVariable() {
std::cout << ExampleNamespace::ExampleClass::staticVariable << std::endl;
}
};
例子说明
ExampleClass
包含一个静态数据成员staticVariable
和一个静态成员函数staticFunction
。在构造函数中,使用友元关系访问了静态数据成员。ExampleFriendClass
被声明为ExampleClass
的友元类,从而可以访问ExampleClass
的私有和保护成员。所有这些元素都在ExampleNamespace
命名空间中定义。