编写一个C++程序,展示如何使用类、对象、构造函数、析构函数、静态变量、静态成员函数、对象数组、对象指针、对象引用、友元函数、友元类等语法元素。
时间: 2023-09-18 17:16:26 浏览: 93
C++静态成员变量和静态成员函数的使用方法总结
好的,以下是一个示例程序:
```cpp
#include <iostream>
using namespace std;
class MyClass {
private:
int x;
static int count;
public:
MyClass(int val) {
x = val;
count++;
cout << "MyClass object created. Count: " << count << endl;
}
~MyClass() {
count--;
cout << "MyClass object destroyed. Count: " << count << endl;
}
void display() {
cout << "x = " << x << endl;
}
static void displayCount() {
cout << "Total number of MyClass objects: " << count << endl;
}
friend void friendFunc(MyClass obj);
friend class FriendClass;
};
int MyClass::count = 0;
void friendFunc(MyClass obj) {
cout << "Friend function called. x = " << obj.x << endl;
}
class FriendClass {
public:
void accessPrivate(MyClass obj) {
cout << "Friend class function called. x = " << obj.x << endl;
}
};
int main() {
MyClass obj1(10);
MyClass obj2(20);
MyClass::displayCount();
obj1.display();
obj2.display();
MyClass* ptr = &obj1;
ptr->display();
MyClass& ref = obj2;
ref.display();
MyClass arr[3] = {MyClass(30), MyClass(40), MyClass(50)};
for (int i = 0; i < 3; i++) {
arr[i].display();
}
friendFunc(obj2);
FriendClass fc;
fc.accessPrivate(obj1);
return 0;
}
```
解释一下程序中的语法元素:
- 类:`MyClass` 是一个类,包含了构造函数、析构函数、成员函数、静态成员变量和友元函数/类。
- 对象:`obj1` 和 `obj2` 是 `MyClass` 类型的对象。
- 构造函数/析构函数:`MyClass` 类的构造函数和析构函数分别用于对象的创建和销毁。在示例程序中,构造函数用于初始化成员变量和增加 `count` 计数器的值,析构函数用于减少 `count` 计数器的值。
- 静态变量/静态成员函数:`count` 是一个静态成员变量,用于记录 `MyClass` 类型对象的数量。`displayCount` 是一个静态成员函数,用于显示 `count` 的值。
- 对象数组:`arr` 是一个 `MyClass` 类型的对象数组,包含 3 个元素。使用循环遍历数组中的每个元素并调用 `display` 函数显示元素的 `x` 值。
- 对象指针:`ptr` 是一个指向 `obj1` 的指针,使用箭头运算符调用 `display` 函数。
- 对象引用:`ref` 是 `obj2` 的引用,使用点运算符调用 `display` 函数。
- 友元函数/类:`friendFunc` 是一个友元函数,可以访问 `MyClass` 类的私有成员。`FriendClass` 是一个友元类,可以访问 `MyClass` 类的私有成员。在示例程序中,`friendFunc` 和 `FriendClass` 都可以访问 `MyClass` 类的 `x` 成员。
阅读全文