Вопрос по шаблонным методам C++ [требует правки]

317
20 декабря 2016, 22:29

Не получается пройти тестовый вопрос. Подскажите пожалуйста:

Какие утверждения являются правильными?

1.Виртуальный метод не может быть шаблонным.
2.Конструктор по-умолчанию не может быть шаблонным.
3.inline метод не может быть шаблонным.
4.Статический метод не может быть шаблонным.
5.Константный метод не может быть шаблонным.
6.Деструктор не может быть шаблонным.

Answer 1

1.Виртуальный метод не может быть шаблонным.

Раздел 14.5.2 Member templates C++ стандарта

3 A member function template shall not be virtual

2.Конструктор по-умолчанию не может быть шаблонным

Конструктор по умолчанию - это не шаблонный конструктор без параметров либо с параметрами, которые имеют аргументы по умолчанию. Объявление любого конструктора класса в том числе и шаблонного конструктора препятствует неявному объявлению конструктора по умолчанию компилятором.

3.inline метод не может быть шаблонным

Спецификатор функции inline может быть применен к любому объявлению функции за исключение объявления в блоке кода. Более того функции, определенные в определении класса в том числе и шаблонные являются inline-функциями. Компилятор может проигнорировать этот спецификатор, либо, напротив, сделать функцию inline, то есть встраиваемой.

4.Статический метод не может быть шаблонным

Статический метод может быть шаблонным, как и любая другая функция.

5.Константный метод не может быть шаблонным

Константные методы класса могут быть шаблонными.

6.Деструктор не может быть шаблонным.

Раздел 14.5.2 Member templates C++ стандарта

  1. ...A destructor shall not be a member template.
Answer 2

Да, да, нет, нет, нет, да.

Не могут быть шаблонными только очень специфичные методы...

READ ALSO
Подключение .lib/.dll в Qt проект

Подключение .lib/.dll в Qt проект

Пытаюсь подключить в Qt проект на С++ (никакие собственные библиотеки Qt не используются) библиотеки ole32 и oleaut32 из набора windows SDK

768
Рамка вокруг изображения в QLabel

Рамка вокруг изображения в QLabel

Есть QLabel, в который нужно запихнуть изображениеНужно сделать так, чтобы это изображение отображалось с рамкой различной толщины

425
Перевод с C++ на русский или C#

Перевод с C++ на русский или C#

ДВС! Помогите расшифровать фрагмент кода:

530
Умный указатель и массив

Умный указатель и массив

Задача поставлена следующим образом: создать класс умный указатель, с которым можно будет реализовать следующее:

308