Tôi có một lớp cơ sởCách chính xác để thực hiện so sánh cho một lớp cơ sở là gì?
class Animal
với các chức năng ảo tinh khiết, và một bộ các lớp thừa kế
class Monkey : public Animal
class Snake : public Animal
Tôi muốn thực hiện một thao tác so sánh do đó, nếu tôi gặp phải hai con trỏ đến Loài vật trong mã của tôi
Animal* animal1
Animal* animal2
Tôi có thể so sánh chúng với nhau. So sánh sẽ mang lại giá trị sai, nếu animal1 và animal2 có các lớp dẫn xuất khác nhau. Nếu chúng thuộc cùng một lớp dẫn xuất, thì đầu ra của toán tử so sánh sẽ được trả về.
Ai đó có thể chỉ cho tôi cách thực hiện tốt điều này không?
Vâng, tốt hơn với người vận hành quá tải ==. – imaginaryboy
Lỗi nhỏ mặc dù, cần phải là 'const monkey * p = dynamic_cast (& khác)' và 'return * this == * p' ... tham chiếu không thể chuyển đổi thành' bool'. –
imaginaryboy
@imaginaryboy: Vâng, tôi đã sửa nó thành một giải pháp tốt hơn nhiều. – Puppy