0

Я начал изучать шаблоны классов и столкнулся с тем, что конструктор класса не вызывается, несмотря на строчку

Class<int> cl();

Буду очень благодарен за помощь. Вот весь код:

template <typename T>
class Class
{
private:
    T* num;

public: Class() { cout << "Ok\n"; num = new T [1]; }

void print()
{
    cout &lt;&lt; num[0];
}

};

int main() { Class<int> cl(); cl.print(); // Функция не выполнится из-за ошибки: выражение должно иметь тип класса return 0; };

Harry
  • 221,325
RedSpike
  • 5
  • 1

1 Answers1

2

Class<int> cl;. Не нужно никаких new.

Компилятор считает Class<int> cl(); объявлением функции (без параметров, с возвращаемым типом Class<int>).

HolyBlackCat
  • 27,445
  • 3
  • 27
  • 40