Рубрики

C ++ | Шаблоны | Вопрос 5

Вывод следующей программы? Предположим, что размер char равен 1 байту, а размер int равен 4 байтам, и компилятор не выполняет выравнивание.

#include<iostream>
#include<stdlib.h>

using namespace std;

  

template<class T, class U>

class A  {

    T x;

    U y;

    static int count;

};

  

int main()  {

   A<char, char> a;

   A<int, int> b;

   cout << sizeof(a) << endl;

   cout << sizeof(b) << endl;

   return 0;

}

(А)

6
12

(В)

2
8

(C) Ошибка компилятора: не может быть более одного аргумента шаблона.
(D)

8
8

Ответ: (Б)
Объяснение: Так как count является статическим, он не учитывается в sizeof.
Тест на этот вопрос

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

C ++ | Шаблоны | Вопрос 5

0.00 (0%) 0 votes