Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » globales objekt/ singleton erzeugen?

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
24.01.2014, 16:27 Uhr
downunderthunder



Hallo,

ich erzeuge hier in einer Klasse im Konstruktur ein Objekt vom Typ
BufferedAsyncSerial
dieses Objekt stellt Methoden für die serielle Ausgabe zur Verfügung, die ich direkt in dieser Klasse nutzen kann!
Wie kann ich genau dieses Objekt aber in einer anderen Klasse nutzen, auf das Objekt Zugriff erlangen?

Singleton, davon habe ich gehört aber wie wird es angewendet?



C++:
try {
    
    BufferedAsyncSerial serial(m_stComPort, m_stBaudrate);
    serial.writeString("TESTAUSGABE\r\n");
    
    } catch(boost::system::system_error& e)
    {
    cout<<"Error: "<<e.what()<<endl;
    }  

 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
03.02.2014, 23:51 Uhr
Lensflare



Hi,

also da gibt es mehrere Möglichkeiten.

Eine davon ist, eine statische Methode bereitzustellen, die eine Instanz der Klasse anlegt und zurückgibt:


C++:
//.h
class BufferedAsyncSerialProvider {
    static BufferedAsyncSerial* serial;
public:
    static BufferedAsyncSerial& GetSerial();
};

//.m
BufferedAsyncSerialProvider::BufferedAsyncSerial* serial = 0;

BufferedAsyncSerial& BufferedAsyncSerialProvider::GetSerial() {
    if(serial == 0) {
        serial = new BufferedAsyncSerial(m_stComPort, m_stBaudrate);
    }
    return *serial;
}




C++:
try {
    BufferedAsyncSerialProvider::GetSerial().writeString("TESTAUSGABE\r\n");
} catch(boost::system::system_error& e)
{
    cout<< "Error: "<<e.what()<<endl;
}



Tut gut mal wieder C++ zu schreiben. Ich hoffe dass ich keine Fehler reingemacht habe
--
Wenn das Gehirn so einfach wäre, dass wir es verstehen könnten, wären wir so einfach, dass wir es nicht verstehen könnten.
(Emerson Pugh Trost)

Dieser Post wurde am 03.02.2014 um 23:55 Uhr von Lensflare editiert.
 
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: