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
/*still try implementing
atomic counter
custom deleter
make_shared
weak pointer counter
*/
//do observe the sharedptr<base> bdptr2(dptr); which asks for typename U and T in constructor
#include <iostream>
using namespace std;
template<class T>
class sharedptr
{
public:
sharedptr(T* ptr = nullptr) : res(ptr), count(new int(1))
{
}
~sharedptr()
{
decrementCounter();
}
sharedptr(const sharedptr<T>& other)
{
res = other.res;
count = other.count;
incrementCounter();
Enter to Rename, Shift+Enter to Preview
OUTPUT
Run