Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » typen zur laufzeit definieren (typedef)???

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 ] > 2 <
010
15.10.2004, 20:27 Uhr
0xdeadbeef
Gott
(Operator)


Ach sorum. OK, da wär die offensichtliche Möglichkeit natürlich ein Wrapper a la:

C++:
class StringWrapper {
public:
  virtual char const *c_str() const = 0;
};

class STLStringWrapper : public StringWrapper {
private:
  std::string m_string;
public:
  STLStringWrapper(std::string const &s) : m_string(s) { }
  virtual char const *c_str() const { return m_string.c_str(); }
};

class CharPtrWrapper : public StringWrapper {
private:
  char *m_string;
public:
  CharPtrWrapper(char const *p) m_string(new char[strlen(p) + 1]) {
    strcpy(m_string, p);
  }
  ~CharPtrWrapper() { delete[] m_string; }

  virtual char const *c_str() const { return m_string; }
};

class CStringWrapper : public StringWrapper {
private:
  CString m_string;
public:
  CStringWrapper(CString const &s) : m_string(s) { }
  virtual char const *c_str() const { return m_string.GetBuffer(0); }
};

void print_string(StringWrapper const &sw) {
  std::cout << sw.c_str() << std::endl;
}

// ...

CharPtrWrapper cpw("Hello, World!");
print_string(cpw);


--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
011
15.10.2004, 23:50 Uhr
~c0x
Gast


bleibt aber immer noch das prob, wenn die implementationen ein objekt der eigenen / der parent klasse zurückgeben muss (lokal, also kein pointer oder referenz), wie soll ich das lösen *solangsamverzweifel*
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
012
16.10.2004, 00:12 Uhr
(un)wissender
Niveauwart


@beefy
StringWrapper braucht unbedingt einen virtuellen Destruktor!
--
Wer früher stirbt ist länger tot.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: [ 1 ] > 2 <     [ 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: