Tôi đang tạo một lớp cơ sở trừu tượng và nghĩ rằng tôi có thể muốn có tín hiệu ảo thuần túy. Nhưng khi tôi biên soạn tôi nhận được một cảnh báo cho các tín hiệu ảo tinh khiết Tôi đã xác định:Có hợp lệ để xác định tín hiệu ảo thuần túy trong C++/Qt không?
../FILE1.h:27: Warning: Signals cannot be declared virtual
../FILE1.h:28: Warning: Signals cannot be declared virtual
Có hợp lệ để xác định một tín hiệu ảo tinh khiết trong C++/Qt? Có hợp lệ để xác định tín hiệu ảo không?
Qt's signal and slot documentation page cho biết bạn có thể xác định các khe ảo nhưng không nói về tín hiệu. Tôi không thể tìm thấy thông tin tốt về tín hiệu ảo thuần túy.
[Trên ghi chú không liên quan Qt cho phép các khe ảo thuần túy ... nhưng không đề cập đến các tín hiệu ảo thuần túy.] (Http://stackoverflow.com/questions/2998216/does-qt-support-virtual-pure-slots) –
Tại sao bạn nghĩ bạn muốn tạo tín hiệu ảo? – Chris
Một cách tiếp cận khác, sử dụng CRTP và một lớp cơ sở chung được đưa ra [trong câu trả lời này] (http://stackoverflow.com/a/32124726/1329652). Nó cho phép dễ dàng bao thanh toán ra khỏi mã phổ biến cho nhiều lớp học có nguồn gốc từ QObject', ngay cả khi chúng xuất phát từ các lớp cơ sở khác nhau (chúng không cần phải lấy trực tiếp từ 'QObject'). –