Here I have tried to use unique_ptr in constructor. It gives the following error:
function "std::unique_ptr<_Ty, _Dx>::operator=(const std::unique_ptr<_Ty, _Dx>::_Myt &) [with _Ty=ABC, _Dx=std::default_delete]" (declared at line 1487 of "C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include\memory") cannot be referenced -- it is a deleted function
How can I achieve it?
StructCol.h
#include "stdafx.h"
#ifndef StructCol_H
#define StructCol_H
#include<string>
#include<memory>
using namespace std;
class ABCD
{
public:
std::unique_ptr<ABC> & n;
ABCD(std::unique_ptr<ABC> & n1) : n(n1)
{
n = n1;
}
void print()
{
cout << n->no << endl;
cout << n->text_c << endl;
cout << n->no_c << endl;
}
};
class ABC
{
public:
string test;
int no;
string text_c;
int no_c;
ABC()
{
}
ABC(string text_c1, int no_c1)
{
text_c = text_c1;
no_c = no_c1;
}
void print()
{
cout << test << endl;
cout << no << endl;
cout << text_c << endl;
cout << no_c << endl;
}
};
#endif