Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Vererbung bei Template Klassen

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
09.07.2006, 18:27 Uhr
~kokos
Gast


Hallo zusammen!

Möchte von einer Template Klasse ableiten. Beim Kompillieren habe ich aber immer das Problem, dass die abgeleitete Klasse nicht auf die Methoden oder Variablen der Elternklasse zugreifen kann. Folgende Fehlermeldung erhalte ich:

Code:
test.cc: In member function »void B<T>::go()«:
test.cc:16: Fehler: »v« wurde in diesem Gültigkeitsbereich nicht definiert



Ein auf das wesentliche beschränktes Beispiel:

C++:
#include <iostream>
template<class T>
class A
{
public:
  T v;
  A(){}
  virtual ~A(){}
};

template<class T>
class B : public A<T>
{
public:
  B(): A<T>() {}
  void go(){v=2.5;}
};


int main(void){

  B<int> test;
  test.go();
  std::cout << test.v << std::endl;
  return 0;
}



Vielen Dank für Eure Hilfe
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
10.07.2006, 07:14 Uhr
Tommix



'Morgen,
bei mir läuft es so. Welchen Compiler nimmst Du?

Gruß, Tommix
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
10.07.2006, 08:29 Uhr
~kokos
Gast


Hi,

werde noch wahnsinnig bei dieser Sache....


Zitat von Tommix:

Welchen Compiler nimmst Du?



gcc (GCC) 4.0.3 unter Ubuntu 6.06

habe es gerade noch damit versucht:
gcc (GCC) 4.0.2 unter SuSe10

aber immer noch mit der gleichen Fehlermeldung abgebrochen...

Viele Grüße,
kokos
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
10.07.2006, 10:01 Uhr
stephanw
localhorst


Das Problem hatte ich auch schon mit dem GCC (Cygwin). Habe ich auch nicht verstanden. Bei mir half ein explizites "this->v" .
--
Reden ist Schweigen und Silber ist Gold.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
10.07.2006, 10:10 Uhr
~kokos
Gast



Zitat von stephanw:
Bei mir half ein explizites "this->v" .


DANKE!

Jetzt tut's. Aber so ist das doch nicht gedacht, oder?
Das muesste doch eigentlich auch ohne "this" funktionieren.
(Uebrigens tut es das auch bei GCC 3.x.x)

bin gespannt auf Eure Antworten,
kokos

P.S.: Bin von Eurer Professionalitaet und Schnelligkeit begeistert, hab da schon ganz andere Sachen in diversen Foren erlebt.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
10.07.2006, 15:23 Uhr
stephanw
localhorst


Tja, ich weiß es leider auch nicht und wäre sehr dankbar, wenn jemand dazu etwas Klärendes beitragen könnte. Ich glaube, dass ich dieses Problem nur mit Templates hatte. Eigentlich ist das falsch: ein public/protected-member einer Basisklasse muss man ohne "this->" referenzieren können.
--
Reden ist Schweigen und Silber ist Gold.
 
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: