#include<iostream>

using namespace std;


class set

{

private:

int *num;

int index;

int size;

public:

set(int s = 0)

{

size = s;

num = new int[size];

index = 0;

}

~set() { delete[] num; }


void setnum()

{

for (int i = 0; i < this->size; i++)

{

cin >> this->num[this->index];

this->index++;

}

}


set operator+(const int& a)

{

for (int i = 0; i < size; i++)

{

if (num[i] == a)

return *this;

}


set s(size + 1);


for (int i = 0; i < size; i++)

{

s.num[i] = num[i];

s.index++;

}


s.num[size] = a;

s.print();


return s;

}


void print()

{

for (int i = 0; i < size; i++)

{

cout << num[i] << " ";

}

cout << endl;

}

};


int main()

{

int size, a;

cout << "크기 입력";

cin >> size;

set s1(size);

s1.setnum();


set s2 = s1 + 3;

s2.print();

cout << "끝" << endl;


return 0;

}


멤버함수 operator+에서 return s;를 했는데 메인문에 있는 s2.print()를 하면 동작하지않고 디버그 어설션 오류가 뜹니다 s1.print()로 했을 때 오류가 안뜨는걸 봐서는 operator+에서 return s;가 동작하지 않는 것 같은데 어떻게 고쳐야할지 감이 안잡힙니다.