Hallo Fragender Frosch … quack …
Erst mal vielen Dank für deine Antwort. Genau so verwende ich die Templateklassen zur Zeit. Ich verwende g++ version 3.2.3 20030502 (Red Hat Linux 3.2.3-20) und da müssen die Tempaltes sogar in der gleichen Reihenfolge initialisert werden wie sie deklariert wurden, sonst erscheint eine Warnung. Die kann allerdings auch mit _ -Wno-reorder _ ausgeblendet werden.
Die Templateklassen sind übrigens eine Schnittstelle zu einer Datenbank (Column, Column, Column etc. ). Die Datenbank hat Tabellen die etwa so aussehen:
CREATE TABLE t\_check\_id
(
pk VARCHAR2 (50)
, fk\_checks VARCHAR2 (50)
, checkid\_1 VARCHAR2 (20)
, checkid\_2 VARCHAR2 (20)
, checkid\_3 VARCHAR2 (20)
, checkid\_4 VARCHAR2 (20)
, checkid\_5 VARCHAR2 (20)
, checkid\_6 VARCHAR2 (20)
, checkid\_7 VARCHAR2 (20)
, checkid\_8 VARCHAR2 (20)
, checkid\_9 VARCHAR2 (20)
, checkid\_10 VARCHAR2 (20)
, checkid\_11 VARCHAR2 (20)
, checkid\_12 VARCHAR2 (20)
, checkid\_13 VARCHAR2 (20)
, checkid\_14 VARCHAR2 (20)
, checkid\_15 VARCHAR2 (20)
, checkid\_16 VARCHAR2 (20)
, checkid\_17 VARCHAR2 (20)
, checkid\_18 VARCHAR2 (20)
, checkid\_19 VARCHAR2 (20)
, checkid\_20 VARCHAR2 (20)
, checkid\_21 VARCHAR2 (20)
, checkid\_22 VARCHAR2 (20)
, checkid\_23 VARCHAR2 (20)
, checkid\_24 VARCHAR2 (20)
);
Anstelle von …
class DbCheckId {
public:
class DbCheckId();
virtual ~class DbCheckId();
Column mCheckId1;
Column mCheckId2;
Column mCheckId3;
...
Column mCheckId24;
};
DbCheckId::smiley:bCheckId():
mCheckId1( TABLENAME, TABLE\_SPACE\_OWNER, "checkid\_1", eString, LENa ),
mCheckId2( TABLENAME, TABLE\_SPACE\_OWNER, "checkid\_2", eString, LENa ),
...
mCheckId24( TABLENAME, TABLE\_SPACE\_OWNER, "checkid\_24", eString, LENa )
{
}
… wäre folgendes viel praktischer zu handhaben.
class DbCheckId {
public:
class DbCheckId();
virtual ~class DbCheckId();
static const int mIdLen = 24;
Column mCheckId[mId];
};
DbCheckId::smiley:bCheckId():
// ... und jetzt ... ???
{
}
Aber wie initialisere ich jetzt die Templates?
Gruss, Olli
PS: Ich trage keine Verantwortung was das DB-Design betrifft und ich habe auch keine Möglichkeit es zu Ändern.
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]