Отсутствует список аргументов для шаблон класса

У меня есть простенький код. В привате 3 переменные с шаблонным типом. В паблике 3 конструктора и методы ввода, вывода. При попытке собрать решение - проблема с шаблоном. Не могу понять, в чем дело.

Ошибки такие:

1) E0441    отсутствует список аргументов для шаблон класса "Parallelepiped"    
2) для использования класс шаблон требуется список аргументов шаблон    
3) Ошибка   C2133   p1: неизвестный размер
4) Ошибка   C2512   Parallelepiped: нет подходящего конструктора по умолчанию

Код:

#include <iostream>
using namespace std;

template <typename T1, typename T2, typename T3>
class Parallelepiped {
private:
    T1 edge_1; // специально сделал 3 шаблона для того, чтобы работать с абсолютно разными типами
    T2 edge_2;
    T3 edge_3;
public:
    Parallelepiped() {
        edge_1 = 0;
        edge_2 = 0;
        edge_3 = 0;
        cout << "Отработал конструктор по умолчания. Ребра обнулены. Область -->> " << this << endl;
    }
    Parallelepiped(T1 e1, T2 e2, T3 e3) {
        edge_1 = e1;
        edge_2 = e2;
        edge_3 = e3;
        cout << "Отработал конструктор с параметрами. Область -->> " << this << endl;
    }
    Parallelepiped(const Parallelepiped& obj) {
        edge_1 = obj.edge_1;
        edge_2 = obj.edge_2;
        edge_3 = obj.edge_3;
        cout << "Отработал конструктор копирования. Область -->> " << this << endl;
    }
    void Initialization(void) {
        cout << "\n---------------------------------\n";
        cout << "\n\nВведите длину первого ребра параллелепипеда -->> "; cin >> edge_1;
        cout << "\n\nВведите длину второго ребра параллелепипеда -->> "; cin >> edge_2;
        cout << "\n\nВведите длину третьего ребра параллелепипеда -->> "; cin >> edge_3;
        cout << "\n---------------------------------\n";
    }
    void Show(void) {
        cout << "\n---------------------------------\n";
        cout << "\n\nДлина первого ребра параллелепипеда -->> " << edge_1;
        cout << "\n\nДлина второго ребра параллелепипеда -->> " << edge_2;
        cout << "\n\nДлина третьего ребра параллелепипеда -->> " << edge_3;
        cout << "\n---------------------------------\n";
    }
    ~Parallelepiped() {
        cout << "Отработал деструктор. Область -->> " << this << endl;
    }
};

int main()
{
    setlocale(0, "");
    Parallelepiped p1;

    return 0;
}

Ответы (1 шт):

Автор решения: Harry

Компилятор совершенно не понимает, какие типы вывести из

Parallelepiped p1;

Поясните ему - укажите типы явно, раз их нельзя вывести из конструктораа. Например:

Parallelepiped<double,double,double> p1;

и все будут довольны :)

→ Ссылка