Страницы

Поиск по вопросам

среда, 5 февраля 2020 г.

Тип данных шаблона

#cpp #шаблоны_с++


Дан шаблон класса для хранения списка элементов типа T. Какие типы данных нельзя
использовать в качестве T?
template  class List {
  private:
    struct element {
        T data;
        element *next;
    };
    element *head;
    ...
};
    


Ответы

Ответ 1



В таком виде нельзя в качестве типа использовать ссылки. Их нужно сразу инициировать при создании, а в случае членов класса это можно сделать только в списке инициализации в конструкторе. Благодаря уточнению @Котик_хочет_кушать добавляю, что это ограничение свойственно для С++2003. В С++11 можно с помощью initializer-clause .

Ответ 2



Какие типы данных нельзя использовать в качестве T Здесь нельзя использовать абстрактные типы данных, например: интерфейсы. И void - естественно. Да и компилятор, скорее всего, сразу об этом скажет. К чему этот вопрос? Вроде все очевидно.

Комментариев нет:

Отправить комментарий