Рубрики

Шаблоны и Аргументы по умолчанию

Параметры по умолчанию для шаблонов в C ++:
Как и аргументы функции по умолчанию, шаблоны также могут иметь аргументы по умолчанию. Например, в следующей программе второй параметр U имеет значение по умолчанию как char.

#include<iostream>

using namespace std;

  

template<class T, class U = char> class A

{

public:

    T x;

    U y;

};

  

int main()

{

    A<char> a;

    A<int, int> b;

    cout<<sizeof(a)<<endl;

    cout<<sizeof(b)<<endl;

    return 0;

}

Вывод: (char занимает 1 байт, а int занимает 4 байта)
2
8

Кроме того, аналогично аргументам функции по умолчанию, если один параметр шаблона имеет аргумент по умолчанию, то все параметры шаблона, следующие за ним, также должны иметь аргументы по умолчанию. Например, компилятор не разрешит следующую программу:

#include<iostream>

using namespace std;

  

template<class T = char, class U, class V = int> class // Ошибка

   // члены А

};

  

int main()

{

    

Пожалуйста, пишите комментарии, если вы обнаружите что-то неправильное или вы хотите поделиться дополнительной информацией по обсуждаемой выше теме.

Рекомендуемые посты:

Шаблоны и Аргументы по умолчанию

0.00 (0%) 0 votes