CPP
cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#include <iostream>
using namespace std;
template<typename T>
class my_shared_ptr
{
public:
my_shared_ptr(T* ptr = nullptr);
~my_shared_ptr();
my_shared_ptr(my_shared_ptr<T>& pOther);
my_shared_ptr& operator=(my_shared_ptr<T>& pOther);
long use_count() const;
private:
T* m_ptr;
int* m_intCnt;
};
template<typename T>
my_shared_ptr<T>::my_shared_ptr(T* ptr)
{
if (ptr == nullptr)
{
m_ptr = nullptr;
m_intCnt = nullptr;
return;
}
Enter to Rename, Shift+Enter to Preview
OUTPUT
Run