我已經重新定義了< <運算符,我希望它能夠引用指針。指針和左移運算符的引用
class foo
{
foo();
virtual ~foo();
void operator << (BaseService*& iRight);
}
某處在代碼中,有一個Foo實例,這是BaseService類的專業化服務我做的:
Service* service_pointer = new Service();
foo_instance << service_pointer;
但我得到這個錯誤: 錯誤:難擋'運營商< <' 在 'foo_instance < < service_pointer' 注:考生是:無效美孚::運算< <(BaseService * &)
沒有什麼變化,如果我的dynamic_cast我service_pointer到BaseService
Service* service_pointer = new Service();
foo_instance << dynamic_cast<BaseService*>(service_pointer);
任何想法?
我想通過引用傳遞一個指針,因爲我的Foo類包含服務的列表,以及潛在的服務添加了<<操作員將被合併(如果可能)與現有的service.In這種情況下, service_pointer將被刪除,我想,以避免任何問題,如果主叫方將其重新分配給該服務被新的服務已經被合併再次使用它。 – codeJack