1.编写自定义类,增加静态成员,验证其语法特点(静态成员初始化、静态成 员函数调用等); 2.友元机制的使用(和static一样,注意类内和类外的写法不同);满足这些要求的一段完整代码,并提供多个接口
时间: 2024-09-25 19:14:21 浏览: 36
在C++中,静态成员和友元功能可以增强类的设计灵活性。这里是一个简单的示例:
1. **静态成员**:
```cpp
class StaticClass {
public:
// 静态成员变量(无需实例化即可访问)
static int staticVar = 0;
// 静态成员函数,不需要创建对象就可调用
static void incrementStatic() {
staticVar++;
std::cout << "Static variable value: " << staticVar << std::endl;
}
private:
// 非静态成员(普通实例成员)
public:
// 定义构造函数和析构函数
StaticClass() {}
~StaticClass() {}
// 访问静态成员
static void accessStatic() {
incrementStatic();
}
};
// 示例使用静态成员
int main() {
StaticClass::accessStatic(); // 直接通过类名调用静态函数
return 0;
}
```
2. **友元**:
友元允许类访问其他类的私有和保护成员。友元分为全局友元和局部友元(仅限于特定的作用域)。这里我们展示一个友元类的例子:
```cpp
class MyClass;
friend class MyFriendClass; // 类MyFriendClass是MyClass的朋友
class MyClass {
private:
int privateVar;
public:
MyClass(int val) : privateVar(val) {}
friend void myFriendFunction(MyClass& obj); // 友元函数声明
};
void myFriendFunction(MyClass& obj) {
std::cout << "Private var: " << obj.privateVar << std::endl;
}
int main() {
MyClass obj(42);
myFriendFunction(obj); // 直接访问私有成员
return 0;
}
```
在这个例子中,`myFriendClass`可以直接访问`MyClass`的`privateVar`。
阅读全文