Tôi có một lớp cơ sở trừu tượng và muốn thực hiện một hàm trong lớp dẫn xuất. Tại sao tôi lại phải khai báo hàm trong lớp dẫn xuất?Tại sao giao diện cần phải được redeclared?
class base {
public:
virtual int foo(int) const = 0;
};
class derived : public base {
public:
int foo(int) const; // Why is this required?
};
int derived::foo(int val) const { return 2*val; }
Điều này có nghĩa là, nếu tôi không redeclare chức năng trong lớp dẫn xuất trình biên dịch sẽ không tìm kiếm việc thực hiện ghi đè của lớp dẫn xuất? – Michael
@Michael: Vâng, tôi nghĩ đó là chính xác. –