Write a class called Box that has three double fields called height, width and l
ID: 673878 • Letter: W
Question
Write a class called Box that has three double fields called height, width and length. The class should have set methods for each field. It should have a three-parameter constructor that takes three doubles and passes them to the set methods to initialize the fields of the Box. It should have a default constructor that uses the set methods to initialize each field to 1. It should have a method that calculates and returns the volume of the Box and a method that calculates and returns the surface area of the Box.
The class declaration (interface) and the function definitions (implementation) must be in separate files - the interface or "header" file has a .hpp extension and the implementation has a .cpp extension. All data members should be private.
Your functions should have the following names:
setHeight
setWidth
setLength
getVolume
getSurfaceArea
The files must be named: Box.hpp and Box.cpp
About using multiple files:
Box.hpp should have "include guards" as discussed on page 447 (use "BOX_HPP").
Box.cpp needs to #include Box.hpp. When you include your own .hpp files (header files), put double quotes around them instead of angled brackets. (You should only #include .hpp files, not .cpp files.)
When testing your program with your own main method, put it in a separate file (this is the "client" code) and give it a name with a .cpp extension.
Your main method also needs to #include Box.hpp.
If you named the file with your main method "boxMain.cpp", then you can compile your program with "g++ Box.cpp boxMain.cpp -o box".
Explanation / Answer
class Box{
double height,width, length;
public:
Box(){
setHeight(1);
setWidth(1);
setLength(1);
}
Box(double h,double w,double l){
height = h;
width = w;
length = l;
}
void setHeight(double h){
height = h;
}
void setWidth(double w){
width = w;
}
void setLength(double l){
length = l;
}
double getVolume(){
return height*width*length;
}
double getSurfaceArea(){
return 2*(length*width + width*height + height*length);
}
};
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.