#include<iostream>
#include<cstring>
using namespace std;
template <class T,int len>
class SimpleArray
{
private:
T arr[len];
public:
T& operator[](int idx) { return arr[idx]; }
SimpleArray& operator=(const SimpleArray &ref) <- 여기서 SimpleArray& 대신 T& 를써도 되는 이유가 뭐죠?
{
for(int i=0;i<len;i++)
{
arr[i]=ref.arr[i];
}
return *this;
}
};
int main()
{
SimpleArray<int,5> obj1;
SimpleArray<int,5> obj2;
for(int i=0;i<5;i++)
{
obj1[i]=i*10;
}
SimpleArray<int,5> obj3;
obj3.operator=(obj2.operator=(obj1));
for(int i=0;i<5;i++)
{
cout<<obj3[i]<<endl;
}
return 0;
}
배열은 심플어레이의 멤버변수 이기때문에 ref의 형은 SimpleArray&가 되는게 맞는것같은데
T& operator=(const T& ref) 로 선언해도 문제가 생기지 않는 이유가 뭘까요
템플릿은 제대로 했냐?
이거아는사람 없음?
템플릿이니까