2011-04-26 39 views
11

Tôi cần kế thừa từ hai giao diện mà cả hai đều có cùng phương thức trong cả hai trường hợp phải thực hiện chính xác cùng một điều. Mã này có chính xác hay không? Tôi cần điều này cho một số loại lớp proxy. Cảm ơn câu trả lời.Giao diện C++ đa thừa kế với cùng phương thức

class InnerInterface { 
    virtual int getID() const = 0; 
    //... 
}; 
class OuterInterface { 
    virtual int getID() const = 0; 
    //... 
}; 
class Foo : public InnerInterface, public OuterInterface { 
    virtual int getID() const; 
    //all abstract methods 
}; 
+8

Phương thức phải là 'virtual', phải không? –

+0

Tất nhiên. Đã sửa. –

+0

Câu hỏi hay - từ tựa đề tôi đã mong đợi một sự thừa kế kim cương đơn giản tốt đẹp (để sử dụng điều thừa kế ảo), nhưng với điều này tôi không chắc chắn. Bạn chắc chắn có thể sử dụng độ phân giải phạm vi để ghi đè lên hai phương pháp kế thừa với cùng một tên riêng biệt, nhưng điều đó có nghĩa là mã trùng lặp, vì vậy điều này là thú vị. – Steve314

Trả lời

7

Vâng, điều này là chính xác. Phương thức getID() duy nhất có thể ghi đè lên cả hai phương thức ảo.

+1

Bạn có thể cung cấp một số thông tin về điều này và kết quả sẽ là gì? Cảm ơn! – wegginho

Các vấn đề liên quan