Template

Hi,

ich versuche die ganze Zeit ein template zu bauen,
aber es klappt nicht. Ich bekomme ständig Fehlrmeldungen.

template
class Array {
public:
Array();
~Array();
private:
//
};

template
inline Array::Array() {
}

template
inline Array::~Array() {
}

Das ist doch so richtig, oder?

Danke
Torsten

Hallo Torsten,

guckst du hier:
http://www.mathematik.uni-marburg.de/~cpp/
http://velociraptor.mni.fh-giessen.de/Programmierung…

ist wirklich sehr schön beschrieben.

ich hoffe, ich konnte helfen :wink:

gruß

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Nachtrag zum Problem
Hi,

ich wußte eigentlich schon, wie ich eine Template Klasse mache, nur habe ich ein Problem, dass ich nicht weiss, was ich mit der Fehlermeldung machen soll.

1.)test1.obj : error LNK2001: unresolved external symbol „public: virtual __thiscall Array::~Array(void)“ (??1?$Array@H$09$09@@UAE@XZ)

2.)test1.obj : error LNK2001: unresolved external symbol „public: __thiscall Array::Array(int)“ (??0?$Array@H$09$09@@QAE@H@Z)

3.)Debug/test1.exe : fatal error LNK1120: 2 unresolved externals

Der Code sieht folgendermassen aus(Array.h, Array.cpp):
// Array.h Start
#ifndef _ARRAY_H_
#define _ARRAY_H_

template
class Array
{
public:
explicit Array(int groesse = 12);
virtual ~Array();
protected:
T a[x][y];
};

#endif
// Array.h Ende
// Array.cpp Start
#include „stdafx.h“
#include „Array.h“

template
Array::Array() {}

template
Array::~Array() {}
// Array.cpp Ende

Laut allem, was ich gelesen habe müsste das doch so gehen.

Im Hauptprogramm benutze ich es mit
#include „Array.h“

Array x;

Danke
Torsten

Hi,

wenn mich nicht alles taeuscht ist das Problem, dass die Templatemethoden in einem extra Modul definiert sind. Wenn Du eine Templatedeklaration im Hauptprogramm einbindest, muss gleichzeitig auch der Code dazu eingebunden werden. Das ist doof und eine der Schwaechen der Templateprogrammierung, aber es kann nach derzeitigem Stand keine vorkompilierten Module mit Teplate-Parametern geben.

Ciao Lutz