/* * clone-alternative-test.cc */ #include "CRN.h" #include "Date.h" #include "Person.h" #include "Employee.h" #include "Manager.h" #include "Consultant.h" #include #include #include #include using namespace std; using namespace IDA_Person; using namespace IDA_Date; int main() { Person* p{nullptr}; Employee* pe{new Employee("Beth Saida", CRN(1952,2,1,1021), Date(2007,1,2), 2, 12000.00)}; p = new Employee(*pe); // det går ju bra men då måste vi veta att det är en Employee, pe måste vara Employee* Person* pm{new Manager("Art Iculate", CRN(1950,1,1,1011), Date(2007,1,1), 1, 41000.00, 2)}; if (typeid(*pm) == typeid(Employee)) // måste använda typid här - exakt typ önskas! { p = new Employee(*dynamic_cast(pm)); } else if (typeid(*pm) = typeid(Manager)) { p = new Manager(*dynamic_cast(pm)); } else if (typeid(*pm) = typeid(Consultant)) { p = new Consultant(*dynamic_cast(pm)); } // Det var ju inte så kul... return 0; }