Niezdefiniowana klasa dla szablonu klasy

0

Cześć!
Czy istnieje możliwość zapisania szablonu klasy nie określając z góry typu?
Dla:

template<class TYPE>
class Klasa
{
public:
    TYPE _type;
};

Chciałbym uzyskać coś takiego:

Klasa* _klasa = new Klasa<int>();

Zamiast z góry ustalać typ, czyli:

Klasa<int> _klasa;

Najlepiej bez jakiś wydziwnień, czy stosowania dodatkowego typu np. klasy abstrakcyjnej.
Dla C++ oczywiście.

0

auto _klasa = new Klasa<int>();, albo lepiej auto _klasa = std::make_unique<Klasa<int>>(); (lektura: https://dsp.krzaq.cc/post/176/ucze-sie-cxx-kiedy-uzywac-new-i-delete/ )

0

To będzie miało sens wyłącznie w określonych sytuacjach. Przykładowo dla:

template<TYPE>
class Klasa
{
public:
TYPE _type;
};

class InnaKlasa
{
private:
auto _klasa;

public:
void SetKlasa(auto klasa)
{
  _klasa = klasa;
 std::cout << _klasa;
}
};

Już nie bardzo, bo nie ma initializera.

0

Trzeba precyzyjniej zadawać pytania. Jak chcesz dynamicznie nadawać typ, to albo klasa bazowa, albo jakieś std::any albo std::variant. Tak czy inaczej, nagi wskaźnik z new to prawie zawsze błąd.

1 użytkowników online, w tym zalogowanych: 0, gości: 1