Skip to content

Instantly share code, notes, and snippets.

@lynxluna
Created July 1, 2012 14:07
Show Gist options
  • Save lynxluna/3028529 to your computer and use it in GitHub Desktop.
Save lynxluna/3028529 to your computer and use it in GitHub Desktop.
QScopedPointer
#include <QScopedPointer>
class PlayerData
{
public:
PlayerData() : health(100), atk(10), agi(10), name (new char[255]) {}
~PlayerData() { delete [] name; }
char *name;
int health, atk, agi;
};
// contoh tanpa smart pointer
void doSomePlayerJobDumb() {
PlayerData *ptrPlayerData = new PlayerData;
-- ptrPlayerData->health;
delete ptrPlayerData;
}
// contoh pointer dengan smart pointer
void doSomePlayerJob() {
QScopedPointer<PlayerData> ptrPlayerData( new PlayerData );
-- ptrPlayerData->health;
// ketika keluar scope, destructor dipanggil
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment