我有一個關於傳值對象構造和虛方法的問題。將值傳遞給虛方法
我有這樣一個虛擬的方法:
typedef boost::function1<void, void*> Task
class ITaskPool
{
//......
virtual AddTask(Task task) = 0;
};
然後像
class TaskPool : public ITaskPool
{
//......
AddTask(Task task);
};
如果我使用這樣的實施;
void MyFunc(void* arg)
{
}
int main()
{
TaskPool tp;
tp.AddTask(&MyFunc);
}
將任務對象被創建兩次,一次用於當它被傳遞給虛擬方法,並且當它被傳遞給派生類的方法的另一?
感謝
聽起來合乎邏輯,感謝 – KaiserJohaan