tôi có mã này:chức năng ảo trọng và ẩn
class Event{};
class CustomEvent:public Event{};
class Handler
{
public:
virtual void inform(Event e){}
};
class CustomHandler : public Handler
{
public:
void inform(CustomEvent e){}
};
CustomEvent cEvent;
Handler* handler = new CustomHandler;
//this calls Handler::inform(Event), not CustomHandler::(CustomEvent) , as I expected
handler->inform(cEvent);
Nếu tôi thay đổi mã này:
class Handler
{
public:
virtual void inform(Event e){}
virtual void inform(CustomEvent e){}
};
class CustomHandler : public Handler
{
public:
void inform(CustomEvent e){}
};
CustomEvent cEvent;
Handler* handler = new CustomHandler;
//this calls CustomHandler::(CustomEvent)
handler->inform(cEvent);
Tôi đọc mà này được kết nối với chức năng trọng và ẩn nhưng vẫn doesn' t hiểu hành vi trong mã này.
Rất nhiều điều sai với mã. Đối với người mới bắt đầu, các đối số hàm sẽ là * references *. –
Tại sao phải tham khảo? – user152508
Vì (a) cắt và (b) một bản sao không cần thiết. – ipc