Question: Flashdrive 2.0 Using flashdrive_2_0.cpp , enhance the FlashDrive class so that it supports the operators + , - , < and > . A sample
Flashdrive 2.0
Using flashdrive_2_0.cpp, enhance the FlashDrive class so that it supports the operators +, -, < and >. A sample pile of driver code is shown below to assist you in this effort. Operators + and - should create a new FlashDrive from the two arguments by combining their contents. If you wind up with a FlashDrive with a value stored that exceeds its capacity, print out an error message. If you wind up with a negative capacity or storage value, print out an error message. Operators < and > must return bool and should compare the holdings of the two arguments to determine which one is bigger.
My strong advice is to work one operator at a time, as these steps are very error-prone and lead to many, many compile errors.
Finally, I would also like you to place FlashDrive in namespace cs52 which will affect the resulting driver code as well as the class' .h and .cpp files.
FlashDrive( );
FlashDrive( int capacity, int used, bool pluggedIn );
void plugIn( );
bool isPluggedIn( ); void pullOut( );
void writeData( int amount ); void eraseData( int amount );
void formatDrive( );
void setCapacity( int amount );
void setUsed( int amount );
int getCapacity( );
int getUsed( );
-------------------------------------
main.cpp
/* Name: Date: Program purpose: Input: Output: */
#include #include "flashdrive_2_0.h" #include "tests.h" using namespace std; using namespace cs52;
int main( ) { cs52::FlashDrive drive1( 10, 0, false ); cs52::FlashDrive drive2( 20, 0, false ); drive1.plugIn( ); drive1.formatDrive( ); drive1.writeData( 5 ); drive1.pullOut( ); drive2.plugIn( ); drive2.formatDrive( ); drive2.writeData( 1 ); drive2.pullOut( ); cs52::FlashDrive combined = drive1 + drive2; cout << "this drive's filled to " << combined.getUsed( ) << endl; cs52::FlashDrive other = combined - drive1; cout << "the other cup's filled to " << other.getUsed( ) << endl; if (combined > other) { cout << "looks like combined is bigger..." << endl; } else { cout << "looks like other is bigger..." << endl; } if (drive2 > other) { cout << "looks like drive2 is bigger..." << endl; } else { cout << "looks like other is bigger..." << endl; } if (drive2 < drive1) { cout << "looks like drive2 is smaller..." << endl; } else { cout << "looks like drive1 is smaller..." << endl; } return 0; }
Step by Step Solution
There are 3 Steps involved in it
Get step-by-step solutions from verified subject matter experts
