Julila
@Julila
вечный студент / german version

Что значит ::value_type в примере?

Добрый вечер. Подскажите что значит в примере ::value_type и где можно с этим по ближе познакомиться ?

Я так поняла так можно дифинировать собственный тип.
template <typename T>       		 
class Point
{
public:
    typedef T value_type;

    T x,y;
};


int main()
{
    cout << "use of template classes" << endl;
	
    Point<int> P = {1,2};
    //Point<int>::value_type X = P.x;  /// ?????
  • Вопрос задан
  • 4877 просмотров
Решения вопроса 1
Это используется для того, что бы можно было получить параметр шаблона извне. Обычно для того, что бы иметь абстрактное имя для типа хранимых элементов, типов итераторов, да и любых типов, производных от параметров шаблона.

Именно этот пример неудачный, т.к. value_typeвы берёте опять же из явно указанного шаблона. Если вы поменяете тип P например на Point<double>, то и тип X придётся изменить.

Вот пример получше:

typedef Point<int> MyPoint;

MyPoint P = {1, 2};
MyPoint::value_type X = P.x;


Теперь тип достаточно изменить в одном месте, а не в каждом куске кода, где он используется.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы