с учетом следующей функции шаблона:
template <class T>
void DoSomething(T &obj1, T &obj2)
{
if(obj1 > obj2)
cout<<"obj1 bigger: "<<obj1;
else if(obj1 == obj2)
cout<<"equal";
else cout<<"obj2 bigger: "<<obj2;
T tmp(3);
T array[2];
array[0]=obj1;
array[1]=obj2;
}
Мне нужно определить класс с именем MyClass (только объявления, т.е. только файл .h), который мог бы работать с этой функцией шаблона.
Я определил следующие объявления:
class MyClass
{
public:
MyClass(); // default ctor
MyClass(int x); // for ctor with one argument
bool operator ==(const MyClass& myclass) const;
bool operator >(const MyClass& myclass) const;
friend ostream& operator<<(ostream &out,const MyClass& myclass); // output operator
};
Я не понимаю, почему нет необходимости определять оператор [] для строк:
array[0]=obj1; array[1]=obj2;
? Когда мне нужно определить оператор []?
спасибо, Рон