static来声明静态成员。friend来声明友元,可以指定一个友元类或友元函数。友元关系是单向的,即如果类A是类B的友元,则类B不一定是类A的友元。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命名空间中定义。