std::make_shared怎么带入参
时间: 2024-05-19 11:08:38 浏览: 10
std::make_shared是C++标准库中的一个函数模板,用于创建一个指定类型的shared_ptr智能指针对象,并可以传递参数给该对象的构造函数。它的用法如下:
```cpp
template< class T, class... Args >
shared_ptr<T> make_shared( Args&&... args );
```
其中,T是要创建的对象类型,Args是传递给对象构造函数的参数。
使用std::make_shared带入参的示例代码如下:
```cpp
#include <iostream>
#include <memory>
class MyClass {
public:
MyClass(int value) : m_value(value) {
std::cout << "MyClass constructor called with value: " << m_value << std::endl;
}
~MyClass() {
std::cout << "MyClass destructor called" << std::endl;
}
private:
int m_value;
};
int main() {
// 使用std::make_shared创建一个MyClass对象,并传递参数10给构造函数
std::shared_ptr<MyClass> ptr = std::make_shared<MyClass>(10);
// 使用ptr指针访问MyClass对象的成员或调用成员函数
std::cout << "Value of MyClass object: " << ptr->getValue() << std::endl;
return 0;
}
```
运行上述代码,输出结果为:
```
MyClass constructor called with value: 10
Value of MyClass object: 10
MyClass destructor called
```
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![cpp](https://img-home.csdnimg.cn/images/20210720083646.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)