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

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Databases Questions!