template lt;class T>
class CMyclass
{
public:
CMyclass(int nLength)
{
m_ T[nLength];
}
~CMyclass()
{
delete m_data;
}
T& operator[](int i)
{
cout << "L";
return m_data[i];
}
T operator[](int i) const
{
cout << "R";
return m_data[i];
}
private:
T* m_data;
T m_length;
};
int _tmain(int argc, _TCHAR* argv[])
{
CMyclass<int> c(5);
for (int i = 0; i < 5; i++)
c[i] = i;
for (int i = 0; i < 5; i++)
cout << c[i] << endl;
return 0;
}
이건 L 만 출력되는데 왜 그럼?
const로 선언하면 달라질거임
그건 cout 에 던져줄때 받아가는쪽에서 타입이 명확하지 않아서임.
이런 식으로 캐스팅 해 보셈.
배열 연산 들어가기 전에 타입을 분명히 해줘야 하는것.
cout << ((const CMyClass<int>&)c)[i] << endl;
ㄴ 와... 해결됨요. 이거 골때리네
ㄴ 아 뭐가 다른거지 이제좀 이해가 가네