Рубрики

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

Вывод следующей программы?

#include <iostream>

using namespace std;

  

template <class T>

class Test

{

private:

    T val;

public:

    static int count;

    Test()  {   count++;   }

};

  

template<class T>

int Test<T>::count = 0;

  

int main()

{

    Test<int> a;

    Test<int> b;

    Test<double> c;

    cout << Test<int>::count   << endl;

    cout << Test<double>::count << endl;

    return 0;

}

(А)

0
0

(В)

1
1

(С)

2
1

(D)

1
0

Ответ: (с)
Объяснение: Шаблон создан двумя классами: Test и Test.

Так как count является статическим членом, каждый класс имеет свою собственную копию. Кроме того, счетчик увеличивается в конструкторе.
Тест на этот вопрос

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

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

0.00 (0%) 0 votes