// vec4.h #include #include using namespace std; // Class declaration // class vector { public: vector( double = 0.0, double = 0.0, double = 0.0 ); // Constructor vector( const vector & ); // Overloaded constructor vector( char[] ); // Another overloaded constructor void show( void ); double entry( int ); void assign( double = 0.0, double = 0.0, double = 0.0 ); void assign( char, double = 0.0 ); vector plus( vector ); vector minus( vector ); private: double data[3]; // Private data }; // Prototypes for non-member functions void show( vector ); void show( char[], vector ); void assign( vector &, double = 0.0, double = 0.0, double = 0.0 ); // Member function definitions vector::vector( double x, double y, double z ) { data[0] = x; data[1] = y; data[2] = z; } vector::vector( const vector &x ) { data[0] = x.data[0]; data[1] = x.data[1]; data[2] = x.data[2]; } vector::vector( char str[] ) { double temp = atof( str ); data[0] = temp; data[1] = temp; data[2] = temp; } void vector::show( void ) { cout << "( " << data[0] << ", " << data[1] << ", " << data[2] << " )"; return; } double vector::entry( int i ) { if ( ( i < 1 ) || ( i > 3 ) ) { cout << "\n** Vector index out of bounds in entry **\n"; exit( EXIT_FAILURE ); } return( data[i-1] ); } void vector::assign( double a, double b, double c ) { data[0] = a; data[1] = b; data[2] = c; return; } void vector::assign( char p, double a ) { switch ( p ) { case '1': data[0] = a; break; case '2': data[1] = a; break; case '3': data[2] = a; break; default: cout << "\n** Vector index out of bounds in assign **\n"; exit( EXIT_FAILURE ); } return; } vector vector::plus( vector u ) { return( vector( data[0] + u.data[0], data[1] + u.data[1], data[2] + u.data[2] ) ); } vector vector::minus( vector u ) { return( vector( data[0] - u.data[0], data[1] - u.data[1], data[2] - u.data[2] ) ); } // Non-member function definitions void show( vector u ) { cout << "( " << u.entry(1) << ", " << u.entry(2) << ", " << u.entry(3) << " )"; return; } void show( char name[], vector u ) { cout << name << " = "; cout << "( " << u.entry(1) << ", " << u.entry(2) << ", " << u.entry(3) << " )"; cout << endl; return; } void assign( vector &x, double a, double b, double c ) { x.assign( a, b, c ); return; }