tôi đã viết mô hình khách truy cập như sau nhưng tôi không hiểu những gì là đơn và đôi công văn. AFAIK, công văn đơn được gọi một phương thức dựa trên loại người gọi, nơi công văn kép gọi một phương thức dựa trên kiểu người gọi và loại đối số.Công văn đơn và đôi là gì?
Tôi đoán công văn kép xảy ra trong phân cấp lớp đơn nhưng tại sao lớp khách truy cập có hai phân cấp lớp nhưng nó vẫn được coi là công văn kép.
void floppyDisk::accept(equipmentVisitor* visitor)
{
visitor->visitFloppyDisk(this);
}
void processor::accept(equipmentVisitor* visitor)
{
visitor->visitProcessor(this);
}
void computer::accept(equipmentVisitor* visitor)
{
BOOST_FOREACH(equipment* anEquip, cont)
{
anEquip->accept(visitor);
}
visitor->visitComputer(this);
}
void visitFloppyDisk(floppyDisk*);
void visitProcessor(processor*);
void visitComputer(computer*);
Vui lòng giải thích bằng mã ví dụ tôi đã cung cấp.
AFAIK, công văn đầu tiên xảy ra trên đối tượng người gọi chấp nhận và công văn thứ hai xảy ra trên đối tượng người gọi phương thức truy cập.
Cảm ơn.
Có lẽ đọc này [bài viết ] (http://en.wikipedia.org/wiki/Multiple_dispatch) có thể giúp bạn hiểu công văn - không phải cách nó được triển khai trong C++, nhưng khái niệm –