1:Fix the problems with this class definition, do not change program functionality
#include <iostream>
using namespace std;
class Rainbow{
private:
static int
numRainbows;
string colors;
public:
Rainbow() { colors = "Red Orange Yellow Green Blue
Violet"; numRainbows++; }
Rainbow(string colors) ; colors(colors) {
numRainbows++; }
void setColors(string colors) { this->colors = colors; }
string getColors() { return colors; }
int getCount() { return numRainbows; }
bool
operator==(const Rainbow &
lhs, const Rainbow& rhs)
{
return lhs.colors == rhs.colors;
}
};
int Rainbow::numRainbows = 0;
int
main()
{
Rainbow
basic;
Rainbow dim("Red Orange Yellow");
Rainbow full("Red Orange Yellow Green Blue Violet");
cout
<< "I can see " << Rainbow::getCount() << "
rainbows in the sky" << endl;
cout << basic.getColors() << endl;
cout << dim.getColors() << endl;
cout << full.getColors() <<
endl;
if ( basic == full )
{
cout << "basic and full have same colors"
<< endl;
}
else
{
cout << "They differ" << endl;
}
return 0;
}
Answer:
Three errors were there:
1) To initialise the colors string using parameterized constructor, semicolon was used instead of colon.
2) getCount() function should be called without any object, so it should be a static function.
3) While doing operator overloading for == operator, one object to be compared is the calling object and other is the passed object. So, only 1 argument is needed and the colors variable of the calling object can be directly accessed.
Here is the corrected code:
#include <iostream>
using namespace std;
class Rainbow{
private:
static int numRainbows;
string colors;
public:
Rainbow() { colors = "Red Orange Yellow Green Blue Violet";
numRainbows++; }
Rainbow(string colors) : colors(colors) { numRainbows++; }
void setColors(string colors) { this->colors = colors; }
string getColors() { return colors; }
static int getCount() { return numRainbows; }
bool operator==(const Rainbow& rhs)
{
return colors == rhs.colors;
}
};
int Rainbow::numRainbows = 0;
int main()
{
Rainbow basic;
Rainbow dim("Red Orange Yellow");
Rainbow full("Red Orange Yellow Green Blue Violet");
cout << "I can see " << Rainbow::getCount() <<
" rainbows in the sky" << endl;
cout << basic.getColors() << endl;
cout << dim.getColors() << endl;
cout << full.getColors() << endl;
if ( basic == full )
{
cout << "basic and full have same colors" <<
endl;
}
else
{
cout << "They differ" << endl;
}
return 0;
}
Output:

PLEASE UPVOTE IF YOU FOUND THIS HELPFUL!
1:Fix the problems with this class definition, do not change program functionality #include <iostream> using namespace...
#include <iostream> #include <string> #include "hashT.h" #include "stateData.h" using namespace std; void stateData::setStateInfo(string sName, string sCapital, double stArea, int yAdm, int oAdm) { stateName = sName; stateCapital = sCapital; stArea = stateArea; yAdm = yearOfAdmission; oAdm = orderOfAdmission; } void stateData::getStateInfo(string& sName, string& sCapital, double& stArea, int& yAdm, int& oAdm) { sName = stateName; sCapital = stateCapital; stArea = stateArea; yAdm = yearOfAdmission; oAdm = orderOfAdmission; } string stateData::getStateName() { return stateName;...
#include "stdafx.h" #include <iostream> using namespace std; class dateType { private: int dmonth; int dday; int dyear; public: void setdate (int month, int day, int year); int getday()const; int getmonth()const; int getyear()const; int printdate()const; bool isleapyear(int year); dateType (int month=0, int day=0, int year=0); }; void dateType::setdate(int month, int day, int year) { int numofdays; if (year<=2008) { dyear=year;...
#include<iostream> #include<string> #include<iomanip> using namespace std; /* ********* Class Car ************* ********************************* */ class Car { private: string reportingMark; int carNumber; string kind; bool loaded; string choice; string destination; public: Car() { reportingMark = ""; carNumber = 0; kind = "Others"; loaded = 0; destination = "NONE"; } ~Car() { } void setUpCar(string &reportingMark, int &carNumber, string &kind, bool &loaded, string &destination); }; void input(string &reportingMark, int &carNumber, string &kind, bool &loaded,string choice, string &destination); void output(string &reportingMark, int &carNumber,...
Here is the code from the previous three steps:
#include <iostream>
using namespace std;
class Student
{
private:
//class variables
int ID;
string firstName,lastName;
public:
Student(int ID,string firstName,string lastName)
//constructor
{
this->ID=ID;
this->firstName=firstName;
this->lastName=lastName;
}
int getID() //getter method
{
return ID;
}
virtual string getType() = 0; //pure virtual function
virtual void printInfo() //virtual function to print basic details
of a student
{
cout << "Student type: " << getType() <<
endl;
cout << "Student ID: " << ID...
Find Output. Just output. No explanation needed.. #include <iostream> #include <string> using namespace std; class baseClass { public: void print() const; baseClass(string s = " ", int a = 0); //Postcondition: str = s; x = a; protected: int x; private: string str; }; class derivedClass: public baseClass { public: void print() const; derivedClass(string s = "", int a = 0, int b = 0); //Postcondition: str = s; x = a; y = b; private: int y; }; int...
Design a class named Triangle that extends GeometricObject class. The class contains: Three double data fields named side1, side2, and side3 with default values 1.0 to denote three sides of the triangle. A no-arg constructor that creates a default triangle with color = "blue", filled = true. A constructor that creates a triangle with the specified side1, side2, side3 and color = "blue", filled = true. The accessor functions for all three data fields, named getSide1(), getSide2(), getSide3(). A function...
CODES: main.cpp #include <iostream> #include <string> #include "ShoppingCart.h" using namespace std; char PrintMenu() { char answer; cout << "MENU" << endl; cout << "a - Add item to cart" << endl; cout << "d - Remove item from cart" << endl; cout << "c - Change item quantity" << endl; cout << "i - Output items' descriptions" << endl; cout << "o - Output shopping cart" << endl; cout << "q - Quit" << endl << endl; while (true) {...
***************Fix code recursive function #include <iostream> #include <cctype> #include <string> using namespace std; void printUsageInfo(string executableName) { cout << "Usage: " << executableName << " [-c] [-s] string ... " << endl; cout << " -c: turn on case sensitivity" << endl; cout << " -s: turn off ignoring spaces" << endl; exit(1); //prints program usage message in case no strings were found at command line } string tolower(string str) { for(unsigned int i = 0; i < str.length(); i++)...
CONVERT THE FOLLOWING C/C++ PROGRAM INTO JAVA: //LinkedString.h #pragma once #include<iostream> #include<string> using namespace std; //declare a node datastruct struct Node { char c; Node *next; }; class LinkedString { Node *head; public: LinkedString(); LinkedString(char[]); LinkedString(string); char charAt(int) const; string concat(const LinkedString &obj) const; bool isEmpty() const; int length() const; LinkedString substring(int, int) const; //added helper function to add to linekd list private: void add(char c); };...
In C++ ***//Cat.h//*** #ifndef __Cat_h__ #define __Cat_h__ #include <string> using namespace std; struct Cat { double length; double height; double tailLength; string eyeColour; string furClassification; //long, medium, short, none string furColours[5]; }; void initCat (Cat&, double, double, double, string, string, const string[]); void readCat (Cat&); void printCat (const Cat&); bool isCalico (const Cat&); bool isTaller (const Cat&, const Cat&); #endif ***//Cat.cpp//*** #include "Cat.h" #include <iostream> using namespace std; void initCat (Cat& cat, double l, double h, double tL, string eC,...