智能指针:请用shared_ptr创建一个第五题的类对象指针,并使用指针来完成将Shandong University of Technology字符串用数组实现逆序输出
时间: 2024-10-06 18:02:57 浏览: 22
智能指针是一种特殊类型的指针,它自动管理内存分配和释放,避免了手动操作可能导致的内存泄漏问题。在这个例子中,我们将使用C++标准库中的`std::shared_ptr`来创建并管理类对象。
首先,假设我们有一个名为`School`的类,包含一个字符串成员变量:
```cpp
class School {
public:
std::string name;
// 构造函数和析构函数...
};
```
然后我们可以使用`shared_ptr`来创建一个指向`School`对象的指针,并将其初始化为`Shandong University of Technology`:
```cpp
#include <memory>
#include <algorithm> // 用于reverse()函数
int main() {
std::string schoolName = "Shandong University of Technology";
// 使用shared_ptr创建并初始化School对象
std::shared_ptr<School> ptr(new School {schoolName});
// 将字符串转换为字符数组
char* arr = new char[schoolName.size() + 1];
std::copy(schoolName.begin(), schoolName.end(), arr);
arr[schoolName.size()] = '\0'; // 添加终止符
// 逆序输出字符数组
reverse(arr, arr + schoolName.size());
// 输出逆序后的学校名
for (char c : arr) {
std::cout << c;
}
std::cout << "\n";
// 当所有shared_ptr不再引用这个对象时,底层资源会被自动释放
return 0;
}
```
阅读全文