class Artist{StringsArtist(const std::string& name="",int age=0):name_(name),age_(age){}std::string name()const {return name_;}void set_name(const std::string& name){name_=name;}int age()const {return age_;}void set_age(int age){age_=age;}virtual std::string perform(){return std::string("");}private:int age_;std::string name_;};class Singer : public Artist{public:Singer():Artist(){};Singer(const std::string& name,int age,int hits);int hits() const{return hits_;}void set_hits(int hit);std::string perform();int operator+(const Singer& rhs);int changeme(std::string name,int age,int hits);Singer combine(const Singer& rhs);private:int hits_=0;};int FindOldestandMostSuccess(std::vector<Singer> list); Implement the function Singer Singer::combine(const Singer& rhs):It should create a new Singer object, by calling the constructor with the following values: For name it should pass a combination of be the name of the calling object followed by a '+' and then the name of the rhs object. For age the value calculated the following way should be passed: to the higher age value of the two objects half the age value of the younger. When calculating the half of the age value keep in mind you handling integers the half however should be of type double. If the result is not an integer number it should be rounded up. The value passed for hits should be calculated the following way: If the sum of the hits_ of the two objects is smaller than 2, hits should have the value of 2. If the sum of the hits_ of the two objects is larger or equal to 2. hits should become the value of the sum multiplied by 1.5 rounded up.
class Artist{
Strings
Artist(const std::string& name="",int age=0):name_(name),age_(age){}
std::string name()const {return name_;}
void set_name(const std::string& name){name_=name;}
int age()const {return age_;}
void set_age(int age){age_=age;}
virtual std::string perform(){return std::string("");}
private:
int age_;
std::string name_;
};
class Singer : public Artist{
public:
Singer():Artist(){};
Singer(const std::string& name,int age,int hits);
int hits() const{return hits_;}
void set_hits(int hit);
std::string perform();
int operator+(const Singer& rhs);
int changeme(std::string name,int age,int hits);
Singer combine(const Singer& rhs);
private:
int hits_=0;
};
int FindOldestandMostSuccess(std::
Implement the function Singer Singer::combine(const Singer& rhs):
It should create a new Singer object, by calling the constructor with the following values:
- For name it should pass a combination of be the name of the calling object followed by a '+' and then the name of the rhs object.
- For age the value calculated the following way should be passed: to the higher age value of the two objects half the age value of the younger. When calculating the half of the age value keep in mind you handling integers the half however should be of type double. If the result is not an integer number it should be rounded up.
- The value passed for hits should be calculated the following way:
- If the sum of the hits_ of the two objects is smaller than 2, hits should have the value of 2.
- If the sum of the hits_ of the two objects is larger or equal to 2. hits should become the value of the sum multiplied by 1.5 rounded up.
Unlock instant AI solutions
Tap the button
to generate a solution