Wskaźnik na tablice obiektow z szablonu klasy

0

Mam szablon klasy costam i chce zrobic dyamiczną tablice obiektow tej klasy.

costam<int> *T = new costam<int>[size];

błąd:undefined reference to costam<int>::costam()'`

0

brak konstruktora domyślnego.

0

Moje konstruktory wyglądają tak:

  costam();
  costam(T __x, T __y)
    : index(__x)
    , value(__y) {}

Zatem wydaje mi sie, ze costam::costam() jest domyslne. Czy nie?

1

No a gdzie ciało tego konstruktora?

0

Doszedłem do tego, ze działa dla

  costam()
    : index(0)
    , value(0) {}

Jednak nie rozumiem, dlaczego ten konstruktor nie moze byc pusty. Jeśli nie chce nic niczym inicjować.

3

Ale to: costam(); to nie jest pusty. To jest tylko deklaracja - nie będzie żadnego kodu (symbolu). Raczej chciałeś costam() {} - to jest "pusta" funkcja.

Ten błąd, który dostałeś, to jest błąd linkera a nie kompilatora - kompilacja się powiodła.

2
costam(T index=T(), T value=T()):index(index),value(value) {}

0 masz jeden konstruktor pełniący role właściwie trzech.

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