#c #overloading
#c #перегрузка
Вопрос:
Мой вопрос по теме немного вводит в заблуждение, я не хочу реализовывать целый класс, подобный std :: vector, но я хочу иметь возможность создавать класс с именем Container, чтобы я мог объявить его следующим образом:
Container <unsigned int> c;
Итак, вот как я перегружаю оператор <> …
class Container
{
private:
Container()
{
...
}
public:
void operator <>( unsigned int )
{
// what do I put here in the code?
// maybe I call the private constructor...
Container();
}
};
Комментарии:
1. Какой тип контейнера вы имеете в виду?, массив, список, карту и т.д.? Все эти варианты влияют на природу конечного шаблона
Ответ №1:
Там нет operator <>
. <>
Обозначает, что Container
является шаблоном класса. Вам нужен синтаксис, подобный:
template <typename T>
class Container
{
...
};
Лучше всего начать с поиска хорошей книги по C , но вы также можете попробовать прочитать, например, страницу часто задаваемых вопросов по C о шаблонах.
Ответ №2:
Вам следует узнать больше о шаблонах.
http://www.cplusplus.com/doc/tutorial/templates/
В двух словах, то, что вы хотите, это:
template <class T>
class Container {
....
};