Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Problem mit Template

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
28.02.2006, 20:49 Uhr
~Gast100
Gast


Hi,

Warum wird beim Folgenden Programm ein Fehler gemeldet?


C++:
/*---------------------------------AArray.h-----------------------------------*/
template <class AType=int, int size=1> class AArray{
private:
    AType F[size];
public:
    AType &operator[](int index);
};
/*----------------------------------------------------------------------------*/

/*---------------------------------AArray.cpp---------------------------------*/
#include "AArray.h"

template <class AType, int size>
AType &AArray<AType, size>::operator[](int index)
{return F[index];}
/*----------------------------------------------------------------------------*/

/*----------------------------------main.cpp----------------------------------*/
#include <iostream>
using namespace std;
#include "AArray.h"

int main ()
{
    AArray<int, 100> t;
    t[2]=154;
    cout<<t[2]<<endl;(

    return 0;
}
/*----------------------------------------------------------------------------*/



Wenn ich template weglasse und z.B. int als Datentyp verwende fuktioniert es.

Schreibe ich alles in die main.cpp (mit template) auch funktioniert alles ohne Probleme.

Wo liegt der Fehler? Danke!

Das Programm ist natürlich nicht wirklich sinnvoll.

Dieser Post wurde am 28.02.2006 um 21:28 Uhr von FloSoft editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
28.02.2006, 21:29 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


Hi, template-deklaration muss mit in den header, also keine AArray.cpp benutzen, sondern den inhalt davon in die .h
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
28.02.2006, 21:43 Uhr
~Gast100
Gast


Dann funktioniert es.
Wenn der Inhalt mit in die Header-Datei muss ist alles klar.
Ich dachte es währe wie bei normalen Funktionen.

Danke
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
28.02.2006, 22:28 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


ne, der compiler werte templates anders aus. Theoretisch kann man das zwar machen wie du es tust, nur müsstest du dann in deinem Array-Header unten drunter


C++:
#include "AArray.cpp"



machen, schaut halt doof aus ;-) normal bindet man keine .cpp's ein, darum gleich einfach in die .h rein
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: