class - C++: Derived classes, "no matching constructor" error -


i've been working on assignment while. here's instructions:

you design abstract class called employee members given below (make them protected):

data members: char *name, long int id

two constructors: default constructor // intitialize data memebrs default values , copy constructor

methods: setperson (char *n, long int id) //allows user set information each person function called print () // should virtual function, prints data attributes of class. , destructor

also define 2 classes derived class employee, called manager , secretary. each class should inherit members base class , has own data members , member functions well. manager should have data member called degree his/her undergraduate degree (e.g. diploma, bachelor, master, doctor), secretary should have contract (can boolean value 1/0 permanent/temporary).

all member functions of derived class should overrided base class.

write following main() test classes

int main() { employee * p = new manager(“bruce lee”, 0234567, “dr.”); p.print(); secretary p2; p2.setperson(“wilma jones”, 0341256, “permanent”); delete p; p = & p2; p.print(); return 0; } 

this i've come far, i'm pretty sure it's riddled mistakes , arguments , variable types off.

#include <iostream> using namespace std;   class employee{ protected:     char *name;     long int id; public:     employee();     employee(employee&);     void setperson(char * n, long int eid) {         name = n;         id = eid; };     virtual void print(){         cout << "name: " << name << endl;         cout << "id: " << id << endl; }; };  class manager: public employee { protected:     char *degree; public:     void setperson(char * n, long int eid, char * d){         name = n;         id = eid;         degree = d;     };     void print() {         cout << "name: " << name << endl;         cout << "id: " << id << endl;         cout << "degree: " << degree << endl;     }; };  class secretary: public employee { protected:     bool contract; public:     void setperson(char * n, long int eid, string c){         name = n;         id = eid;         if (c == "permanent") contract = true;         else contract = false;     };     void print(){         cout << "name: " << name << endl;         cout << "id: " << id << endl;         cout << "contract: " << contract << endl;     }; };  int main() {     employee * p = new manager("bruce lee", 0234567, "dr.");     p.print();     secretary p2;     p2.setperson("wilma jones", 0341256, "permanent");     delete p;     p = & p2;     p.print();     return 0; } 

i'm getting error on line 62 (the first line of main code):

no matching constructor initialization of manager

i've tried reading similar questions, haven't helped me much. think confusing thing contract being bool value , use of char arguments. guidance @ appreciated.

the error you're getting pretty straight-forward: don't have constructor manager (or employee) takes string, integer (?), , string arguments.


Comments

Popular posts from this blog

Django REST Framework perform_create: You cannot call `.save()` after accessing `serializer.data` -

Why does Go error when trying to marshal this JSON? -