#include <iostream>
using namespace std;

class SoSimple
{
private:
        int num1;
        int num2;
public:
        SoSimple(int n1, int n2)
                :num1(n1),num2(n2)
        {}
        SoSimple(SoSimple copy)
                :num1(copy.num1),num2(copy.num2)
        {
                cout<<"Called SoSimple(SoSimple&copy)"<<endl;
        }
        void ShowSimpleData()
        {
                cout<<num1<<endl;
                cout<<num2<<endl;
        }
};

이렇게 했는데 컴파일 에러나네 근데 SoSimple(SoSimple &copy) 이렇게 하면 에러가 안난다.

원래 저 위에처럼 써야 값변경도 안되고 더 자연스러울거 같은데 왜 SoSimple &Copy 이렇게 하는거냐?