Mã dưới đây giải thích vấn đề. Điền vào same_sub_class để phát hiện nếu hai con trỏ tới lớp cơ sở ảo A thực tế là lớp cụ thể.Trong C++, hãy kiểm tra xem hai trường hợp của một lớp cơ sở có thuộc cùng một lớp con không
struct A {
...
}:
struct B : public A {
...
}:
struct C : public A {
...
}
bool same_sub_class(A * a1, A * a2){
// Fill this in to return true if a1 and a2 are
// of the same concrete class
}
EDIT:
Như tôi đã nhìn vào ứng dụng của tôi, tôi cần cái gì đó hơi khác biệt so với ở trên. Tôi cần để có thể nhóm các trường hợp theo type_id của họ.
FYI. Tôi có một hệ thống algerbra tượng trưng nhỏ để thao tác điều quan trọng là phải biết loại lớp đôi khi để phân loại và sắp xếp lại các biểu thức.
Vì vậy, hãy cho một vectơ con trỏ ví dụ cách nhóm chúng theo type_id của chúng. Tôi sẽ cần phải có khả năng băm type_id hoặc tạo ra một số nguyên duy nhất cho mỗi lớp.
âm thanh như những gì bạn thực sự cần là một int tĩnh trên mỗi lớp để sắp xếp theo? –