私は現在、このクラスを持っています:
Activity
、ActivityManager
(拡張Activity
)。
Activity
のシングルトン オブジェクトを取得するメソッドが に 1 つありActivityManager
ます。
しばらくすると、ActivityManager はコンパイラによってのみ「作成」されるため、「生命のない生活」のパラドックスに陥ったことがわかりました。では、どうすればこの種のことを行うことができますか?
つまり、最初のオブジェクトから拡張されたオブジェクトのクラスを取得するにはどうすればよいですか?
これをグーグルに載せる方法さえ知らないので、助けてください!ありがとう
編集
簡略化Activity
class Activity
{
public:
void start();
};
void Activity::start(void){
// Start current Activity on the ActivityManager Stack
ActivityManager *am;
am = ActivityManager::getInstance();
am->start(this);
}
簡体字ActivityManager
:
class ActivityManager: public Activity
{
private:
// Singleton Object
static ActivityManager *singleton;
public:
// Singleton method to return defauld object instance
static ActivityManager* getInstance(void);
// Overload method, used to run others Activityes
void start(Activity& activity);
};
// Singleton method to return default ActivityManager object instance
ActivityManager* ActivityManager::getInstance(){
if(!singleton) singleton = new ActivityManager();
return singleton;
}
// Function called on request to start new activity
void ActivityManager::start(Activity& activity){
}