Có bao giờ có ý nghĩa khi ghi đè phương thức ảo thuần túy bằng một phương thức ảo thuần túy khác không? Có bất kỳ sự khác biệt chức năng hoặc có lẽ lý do kiểu mã để thích một trong các tùy chọn sau khác?C++ ghi đè phương pháp ảo thuần túy với phương pháp ảo thuần túy
class Interface {
public:
virtual int method() = 0;
};
class Abstract : public Interface {
public:
int method() override = 0;
};
class Implementation : public Abstract {
public:
int method() override { return 42; }
};
Versus:
class Interface {
public:
virtual int method() = 0;
};
class Abstract : public Interface {};
class Implementation : public Abstract {
public:
int method() override { return 42; }
};
Nó chỉ có thể phục vụ để truyền đạt điều gì đó cho người đọc mã của bạn. * "Người thân tìm kiếm mã Tóm tắt của tôi ... lưu ý rằng lớp này thực sự có chức năng ảo." –