#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©)"<<endl;
}
void ShowSimpleData()
{
cout<<num1<<endl;
cout<<num2<<endl;
}
};
이렇게 했는데 컴파일 에러나네 근데 SoSimple(SoSimple ©) 이렇게 하면 에러가 안난다.
원래 저 위에처럼 써야 값변경도 안되고 더 자연스러울거 같은데 왜 SoSimple &Copy 이렇게 하는거냐?
저렇게하면 복사생성자 무한호출됨
const Sosimple& 로 호출하셈