Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

[Dodatkowe materiały]Szablony klas

Ostatnio zmodyfikowano 2011-12-23 20:58
Autor Wiadomość
poldek
Temat założony przez niniejszego użytkownika
[Dodatkowe materiały]Szablony klas
» 2011-12-23 20:23:45
Witam.
Pisze sobie pewną klasę do C++ i chce żeby miała Szablon, ale moja klasa jest podzielona na 2 pliki(*.hpp i *.cpp).
Raczej metody w tej klasie nie powinny mieć ustalonego typu z góry i tutaj pojawia się problem jak pisze szablon klasy w jednym pliku (*.cpp) to wszystko jest Ok a jeśli tą klasę rozpisuję tę klasę na dwa pliki to nie chce mi działać i tutaj zwracam się do was ... Jak powinny wyglądać szablony klas w dwóch plikach (*.hpp i *.cpp)?


» Kurs C++Szablony klas lekcja
P-46163
pekfos
» 2011-12-23 20:33:31
w całości w plikach .h(pp)
Kompilator potrzebuje kompletnego kodu szablonu by dokonać konkretyzacji :)
P-46167
poldek
Temat założony przez niniejszego użytkownika
» 2011-12-23 20:34:41
@Down Zaraz
P-46169
pekfos
» 2011-12-23 20:37:47
Czego? Twój opis problemu nic nie opisuje. Daj kod, log, itp. To prawie jak "mam szablon w dwóch plikach. nie działa."
P-46170
poldek
Temat założony przez niniejszego użytkownika
» 2011-12-23 20:49:53
C/C++
//-----main.cpp-----//

#include <iostream>
#include "klasa.h"

int main()
{
    //...
    return 0;
}

//-----klasa.cpp-----//


typ liczba::dodaj( void )
{
    return a + b;
}

//-----klasa.h(pp)-----//


#ifndef KLASA_H
#define KLASA_H

#include <iostream>
using namespace std;

template < class typ >
class liczba
{
public:
    typ a, b;
    typ dodaj( void );
};

#endif
Proszę.
To jest tylko taki przykład jak się uda z tym to później to wykorzystam te Szablony do klasy Vektor2D którą piszę aby ułatwić życie w allegro, ale to jest inna bajka.
P-46175
pekfos
» 2011-12-23 20:51:58
zawartość pliku klasa.cpp wsadź do pliku klasa.hpp. Innej rady nie ma.
P-46177
poldek
Temat założony przez niniejszego użytkownika
» 2011-12-23 20:53:19
A czy nie ma innej opcji/sposobu żeby to działało ?
P-46179
pekfos
» 2011-12-23 20:54:39
Co się tak uwziąłeś na ten podział? Kompilator musi mieć kompletny kod szablonu wszędzie gdzie jest potrzebny. Możesz trzymać implementację w innych plikach .hpp i tylko dołączyć je na koniec pliku klasa.hpp
P-46180
« 1 » 2
  Strona 1 z 2 Następna strona