Làm thế nào tôi có thể thực hiện giao diện thông thạo này trong C++:Làm thế nào để thực hiện giao diện thông thạo với một lớp cơ sở, trong C++
class Base {
public:
Base& add(int x) {
return *this;
}
}
class Derived : public Base {
public:
Derived& minus(int x) {
return *this;
}
}
Derived d;
d.add(1).minus(2).add(3).minus(4);
mã hiện không hoạt động kể từ khi cơ sở lớp không biết gì về lớp Derived, vv Tôi sẽ rất biết ơn cho một gợi ý/gợi ý.
Tại sao bạn làm điều này? Cơ sở có đại diện cho một cơ sở đa hình thực sự hay không - nếu nó không phải là một vi phạm LSP có lẽ là lý do tại sao nó là khó khăn. – Stewart
@Stewart - nó không phải là một vi phạm LSP trừ khi đi qua một Derived off như là một cơ sở cho một chức năng mong đợi một cơ sở đã không hoạt động một cách thích hợp. Thêm hành vi mới vào các lớp con là hoàn toàn tốt và sẽ không bao giờ vi phạm LSP. Nó chỉ có thể vi phạm LSP bằng cách ghi đè hành vi hiện có trong Base sao cho nó không tuân theo giao diện nữa. –