Tôi códesctructor ảo trên tinh khiết trừu tượng lớp cơ sở
struct IMyInterface
{
virtual method1() = 0;
virtual method2() = 0;
};
GCC khẳng định rằng tôi có
struct IMyInterface
{
virtual method1() = 0;
virtual method2() = 0;
virtual ~IMyInterface(){};
};
Tôi không hiểu tại sao. Một giao diện thuần túy là tất cả về giao diện (duh). Destructor là một phần của các chi tiết thực hiện nội bộ của một người triển khai cụ thể của giao diện; nó không tạo thành một phần của giao diện. Tôi hiểu toàn bộ vấn đề cắt lát (hoặc ít nhất là tôi nghĩ mình làm)
Vì vậy, câu hỏi của tôi là - GCC có phải nhấn mạnh vào nó không và nếu có thì tại sao?
Bạn đang nói về destructors, nhưng mã của bạn cho thấy một hàm tạo. Đó là câu hỏi về? –
@mmyers, đã sửa nó. –
Quy tắc 1 của Lập trình: Trình biên dịch luôn đúng. Quy tắc 2 của Lập trình: Nếu Trình biên dịch sai, Quy tắc 1 sẽ áp dụng. –