Constness und QReadWriteLock

Alles rund um die Programmierung mit Qt
Antworten
caetydid
Beiträge: 29
Registriert: 13. Januar 2006 22:25
Kontaktdaten:

Constness und QReadWriteLock

Beitrag von caetydid »

Hi,

in einer Klasse möchte ich gewisse Daten abfragen. Die Abfrage verändert nicht den internen Zustand des Objekts.

Code: Alles auswählen

void Klasse::getData( QVector<Typ>& A ) const
{
    mDataLock.lockForRead();  // <-- geht nicht, weil nicht const
    // bastel QVector zusammen...
    // ...
    mDataLock.unlock();
}
Der obige Code kompiliert jedoch nicht, weil sich das Objekt eben doch ändert (das QReadWriteLock).
Irgendwie müßte es doch gehen, diesen Lockingmechanismus zu verwenden und gleichzeitig die obige Signatur?


caetydid >8^)
caetydid
Beiträge: 29
Registriert: 13. Januar 2006 22:25
Kontaktdaten:

Lösung - eine Sache von C++

Beitrag von caetydid »

So, jetzt scheine ich eine Lösung gefunden zu haben.
Ob sie was taugt könnt ihr ja ggf. beurteilen:

Es gibt das C++ Keyword 'mutable'.
Wenn man die Variable so deklariert

Code: Alles auswählen

mutable QMutex mLock
kann sie auch in const Funktionen verwendet werden!

...ich nehme mal an damit kann man auch Mist bauen :)

viel Spaß beim Proggen,
caetydid >8^)
lepsai
Beiträge: 573
Registriert: 14. September 2004 21:33
Wohnort: Berlin
Kontaktdaten:

Beitrag von lepsai »

unglaublich, wa man hier alles lernen kann! :lol:
Antworten