c++中,可以将msg存放在智能指针里,别的模块再从智能指针中通过ptr.Get()的方式获取到其中的msg内容吗,如果可以,请结合具体c++代码进行演示
时间: 2024-09-28 21:04:30 浏览: 19
是的,在C++中,可以将msg存放在智能指针里,其他模块可以通过智能指针的Get()方法获取到其中的msg内容。下面是一个具体的示例:
```cpp
#include <iostream>
#include <memory>
class Message {
public:
Message(const std::string& msg) : msg_(msg) {}
std::string GetMsg() const { return msg_; }
private:
std::string msg_;
};
int main() {
// 创建一个Message对象,并将其存储在智能指针中
std::shared_ptr<Message> msgPtr = std::make_shared<Message>("Hello, World!");
// 其他模块可以通过智能指针的Get()方法获取到其中的msg内容
Message* rawPtr = msgPtr.get();
std::cout << "Message from smart pointer: " << rawPtr->GetMsg() << std::endl;
return 0;
}
```
在这个示例中,我们创建了一个名为`Message`的类,它有一个成员变量`msg_`用于存储消息内容。然后我们使用`std::make_shared`创建一个`Message`对象的智能指针`msgPtr`。在其他模块中,我们可以通过调用`msgPtr.get()`获取原始指针`rawPtr`,然后通过`rawPtr->GetMsg()`获取消息内容。
阅读全文