In C++ Create the necessary constructors in those classes to facilitate instanti
ID: 3837931 • Letter: I
Question
In C++
Create the necessary constructors in those classes to facilitate instantiations and the output below (Name of the president, country, political party, and years of service):
Whats wrong with my header/implementation ?
#ifndef Implementation_hpp
#define Implementation_hpp
#include <string>
using namespace std;
class Person
{
public:
Person();
Person(string);
void showIdentity();
protected:
string m_name;
};
class President:public Person
{
public:
President();
President(string);
President(string,string origin);
President(string,string origin,string party);
President(string,string origin,string party,int);
void showIdentity();
protected:
string origin;
string party;
int yrs_in_service;
};
Implementation
#endif /* Implementation_hpp */
#include<iostream>
#include "Implementation.hpp"
#include <string>
using namespace std;
Person::Person()
{
m_name= " No Name Supplied";
}
Person::Person(string nm)
{
m_name =nm;
}
void Person:: showIdentity()
{
cout<< "Name is :"<<m_name<<endl;
}
President::President()
:Person()
{
string origin= "Not Known";
string party= "Not Known";
yrs_in_service =0;
}
President::President(string m_name)
:Person(m_name)
{
string origin= "Not Known";
string party= "Not Known";
yrs_in_service =0;
}
President::President(string m_name,string Nationality)
:Person(m_name)
{
string origin= Nationality;
string party= "Not Known";
yrs_in_service = 0;
}
President::President(string m_name,string Nationality,string political)
:Person(m_name)
{
string origin= Nationality;
string party=political;
yrs_in_service = 0;
}
President::President(string m_name,string Nationality,string Political, int id)
:Person(m_name)
{
string origin= Nationality;
string party= Political;
yrs_in_service =id;
}
void President::showIdentity()
{
Person::showIdentity();
cout<< "Name is :"<<m_name<<endl;
cout<< "origin is :"<<origin<<endl;
cout<< "Political Party is :"<<party<<endl;
cout<< "Years in service is :"<<yrs_in_service<<endl;
}
Explanation / Answer
this code works fine
#include <iostream>
#include <string>
using namespace std;
class Person
{
public:
Person();
Person(string);
void showIdentity();
protected:
string m_name;
};
class President:public Person
{
public:
President();
President(string);
President(string,string origin);
President(string,string origin,string party);
President(string,string origin,string party,int);
void showIdentity();
protected:
string origin;
string party;
int yrs_in_service;
};
Person::Person()
{
m_name= " No Name Supplied";
}
Person::Person(string nm)
{
m_name =nm;
}
void Person:: showIdentity()
{
cout<< "Name is :"<<m_name<<endl;
}
President::President()
:Person()
{
string origin= "Not Known";
string party= "Not Known";
yrs_in_service =0;
}
President::President(string m_name)
:Person(m_name)
{
string origin= "Not Known";
string party= "Not Known";
yrs_in_service =0;
}
President::President(string m_name,string Nationality)
:Person(m_name)
{
string origin= Nationality;
string party= "Not Known";
yrs_in_service = 0;
}
President::President(string m_name,string Nationality,string political)
:Person(m_name)
{
string origin= Nationality;
string party=political;
yrs_in_service = 0;
}
President::President(string m_name,string Nationality,string Political, int id)
:Person(m_name)
{
string origin= Nationality;
string party= Political;
yrs_in_service =id;
}
void President::showIdentity()
{
Person::showIdentity();
cout<< "Name is :"<<m_name<<endl;
cout<< "origin is :"<<origin<<endl;
cout<< "Political Party is :"<<party<<endl;
cout<< "Years in service is :"<<yrs_in_service<<endl;
}
int main() {
// your code goes here
President pr("Jackie");
pr.showIdentity();
return 0;
}