Привет всем!!!
Решал я как-то тут недавно тесты по C++ и
несколько с виду простых, меня поставили в тупик.
Например:
Вам необходимо реализовать «умный указатель» - класс, который хранит адрес в памяти,
где хранится значение переменной, а также имеет ряд дополнительных методов:
для подсчета количества ссылок на объект, для автоматической сборки мусора и т.д.
Для обеспечения универсальности данного класса необходимо воспользоваться шаблоном класса.
Какой из вариантов позволяет решить поставленную задачу?
(1)
template <class ValueType>
class Pointer
{
private:
ValueType* value;
/*...*/
};
(2)
template <typename ValueType>
class Pointer
{
private:
typename ValueType* value;
/*...*/
};
(3)
template <class ValueType>
class Pointer
{
private:
class ValueType* value;
/*...*/
};
Честно говоря я не понимаю в чем разница между 2-мя
первыми ответами? Буду благодарен если кто-нибудь разъяснит