Hallo zusammen.
Da ich ein von natur aus fauler Mensch bin kam ich neulich auf folgende Idee:
|
C-/C++-Quelltext
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
class GibMichWiederFrei {
// code....
// dynamischer Speicher wird verwendet usw..
// COM Interfaces -> Referenzzähler
// Und jetzt soll einfach alles der Destruktur regeln
~GibMichWiederFrei() {
// neu im C++11 standard: nullptr, unser neuer Freund
if( nullptr != m_lpDevice) { // oder sowas
// "Guck ob da was initialisiert ist. Wenn ja, fahrs runter!"
m_lpDevice->Release();
}
};
|
Das hat bisher prima funktioniert, doch langsam kommen mir Zweifel auf, ob das eine so gute Idee ist.
Speziell wenn man mit Dateistreams arbeitet, sind die Ergebnisse äußerst rätselhaft.
Ich hab halt in jeder Klasse noch ein Release(); eingebaut, falls ich das mal manuell aufrufen will.
Der Konstruktor ist soweit ich weis nicht zeitbegrenzt, soll heißen: Ich hab kein Zeitlimit zum "aufräumen",
oder?
Was meint ihre denn dazu`?
Liebe Grüße Johannes Schneider