I have a base class tree. Using this class, I have to create two derived classes, oak and pine.
Here is the base class tree:
Code:#ifndef TREE_H #define TREE_H //Tree class declaration #include<iostream> using namespace std; #define dead 0 #define live 1 #define burning 2 #define newt 3 class tree { protected: string type; double probCatch; int status; double wetness; int burnTime; public: tree(); //default constructor tree(string t, double prob, int stat, double wet, int burn); //constructor double getProbCatch() const; //accessor void setProbCatch(double prob); //mutator int getStatus() const; void setStatus(int stat); double getWetness() const; void setWetness(double wet); int getBurnTime() const; void setBurnTime(int burn); ostream& showSymbol(ostream& out); friend ostream& operator<<(ostream& out, tree& a); }; #endif //TREE_HHere is the oak class:Code:#include <iostream> #include <iomanip> #include <string> #include <cstdlib> #include "tree.h" #include "oak.h" #include "pine.h" using namespace std; //------------------------------------------------------------------------- //Default Tree Constructor //------------------------------------------------------------------------- tree::tree(): type("not_a_tree"), probCatch(0), status(dead), wetness(1), burnTime(1) { //empty body; initialization } //------------------------------------------------------------------------- //Tree Constructor //------------------------------------------------------------------------- tree::tree(string t, double prob, int stat, double wet, int burn): type(t), probCatch(prob), status(stat), wetness(wet), burnTime(burn) { //empty body; intialization } //------------------------------------------------------------------------- //Fetching Probability //------------------------------------------------------------------------- double tree::getProbCatch() const { return probCatch; } //------------------------------------------------------------------------- //Setting Probability //------------------------------------------------------------------------- void tree::setProbCatch(double prob) { probCatch=prob; } //------------------------------------------------------------------------- //Fetching Status //------------------------------------------------------------------------- int tree::getStatus() const { return status; } //------------------------------------------------------------------------- //Setting Status //------------------------------------------------------------------------- void tree::setStatus(int stat) { status=stat; } //------------------------------------------------------------------------- //Fetching Wetness //------------------------------------------------------------------------- double tree::getWetness() const { return wetness; } //------------------------------------------------------------------------- //Setting Wetness //------------------------------------------------------------------------- void tree::setWetness(double wet) { wetness=wet; } //------------------------------------------------------------------------- //Fetching Burn Time //------------------------------------------------------------------------- int tree::getBurnTime() const { return burnTime; } //------------------------------------------------------------------------- //Setting Burn Time //------------------------------------------------------------------------- void tree::setBurnTime(int burn) { burnTime=burn; } //------------------------------------------------------------------------- //Overloading Output << //------------------------------------------------------------------------- ostream& operator<<(ostream& out, tree& a) { out << "Species: "<< a.type <<endl; out << "Probability: "<< a.probCatch <<endl; out << "Status: "<< a.status <<endl; out << "Wetness: "<< a.wetness <<endl; out << "Burn time: "<< a.burnTime <<endl; return out; } //------------------------------------------------------------------------- //Show Symbols //------------------------------------------------------------------------- ostream& tree::showSymbol(ostream& out) { out<<"\033[32;40m!"<<endl; return out; }
Code://Oak class declaration #include "tree.h" #include<iostream> using namespace std; #define dead 0 #define live 1 #define burning 2 #define newt 3 class oak : public tree { public: oak(); //default constructor oak(string t, double prob, int stat, double wet, int burn); //constructor ostream& showSymbol(ostream& out); friend ostream& operator<<(ostream& out, tree& a); };The pine class is the same as the oak class except for the symbol.Code:#include <string> #include <cstdlib> #include "oak.h" #include "tree.h" using namespace std; //------------------------------------------------------------------------- //Default Tree Constructor //------------------------------------------------------------------------- oak::oak(): type("not_a_tree"), probCatch(0), status(dead), wetness(1), burnTime(1) { //empty body; initialization } //------------------------------------------------------------------------- //Tree Constructor //------------------------------------------------------------------------- oak::oak(string t, double prob, int stat, double wet, int burn): type(t), probCatch(prob), status(stat), wetness(wet), burnTime(burn) { //empty body; intialization } //------------------------------------------------------------------------- //Show Symbols //------------------------------------------------------------------------- ostream& oak::showSymbol(ostream& out) { out<<"\033[32;40m@"<<endl; return out; }
I'm getting the following errors when it compiles:
This is my first time doing polymorhpism and I'm not sure how to do it. I'm making some mistakes that are messing up the program and I can't catch them. Please help me if you can.Code:oak.cpp: In constructor ‘oak::oak()’: oak.cpp:14: error: class ‘oak’ does not have any field named ‘type’ oak.cpp:14: error: class ‘oak’ does not have any field named ‘probCatch’ oak.cpp:14: error: class ‘oak’ does not have any field named ‘status’ oak.cpp:14: error: class ‘oak’ does not have any field named ‘wetness’ oak.cpp:14: error: class ‘oak’ does not have any field named ‘burnTime’ oak.cpp: In constructor ‘oak::oak(std::string, double, int, double, int)’: oak.cpp:23: error: class ‘oak’ does not have any field named ‘type’ oak.cpp:23: error: class ‘oak’ does not have any field named ‘probCatch’ oak.cpp:23: error: class ‘oak’ does not have any field named ‘status’ oak.cpp:23: error: class ‘oak’ does not have any field named ‘wetness’ oak.cpp:23: error: class ‘oak’ does not have any field named ‘burnTime’ pine.cpp: In constructor ‘pine::pine()’: pine.cpp:13: error: class ‘pine’ does not have any field named ‘type’ pine.cpp:13: error: class ‘pine’ does not have any field named ‘probCatch’ pine.cpp:13: error: class ‘pine’ does not have any field named ‘status’ pine.cpp:13: error: class ‘pine’ does not have any field named ‘wetness’ pine.cpp:13: error: class ‘pine’ does not have any field named ‘burnTime’ pine.cpp: In constructor ‘pine::pine(std::string, double, int, double, int)’: pine.cpp:22: error: class ‘pine’ does not have any field named ‘type’ pine.cpp:22: error: class ‘pine’ does not have any field named ‘probCatch’ pine.cpp:22: error: class ‘pine’ does not have any field named ‘status’ pine.cpp:22: error: class ‘pine’ does not have any field named ‘wetness’ pine.cpp:22: error: class ‘pine’ does not have any field named ‘burnTime’



LinkBack URL
About LinkBacks



I used to be an adventurer like you... then I took an arrow to the knee.