http://www.c-jump.com/bcc/c255c/c255syllabus.htmThe purpose of this assignment is to add a set of overloaded operators to the substring class that you implemented earlier.
Load substring project into your development environment.
Add the following declarations to the substring class header file, substring.h:
// CIS-255 substring class
#ifndef _CIS62_SUBSTRING_H_INCLUDED_
#define _CIS62_SUBSTRING_H_INCLUDED_
#include <iostream>
#include <string>
class substring {
//...
public:
friend std::ostream& operator<<( std::ostream& os, substring const& sub );
// Operators overloaded as members functions:
// Assignments:
substring& operator=( substring const& other );
substring& operator=( std::string const& str );
// Merge with another substring:
substring& operator+=( substring const& other );
// Compare with another substring:
bool operator>( substring const& other ) const;
bool operator<( substring const& other ) const;
// Subscript access to individual characters within substring:
char& operator[]( size_t idx );
char operator[]( size_t idx ) const;
};//class substring
// Operators overloaded as non-member functions:
std::ostream& operator<<( std::ostream& os, substring const& sub );
// Equality/Inequality tests between two substrings:
bool operator==( substring const& one, substring const& another );
bool operator!=( substring const& one, substring const& another );
// Equality/Inequality tests between substring and std::string:
bool operator==( std::string const& str, substring const& sub );
bool operator==( substring const& sub, std::string const& str );
bool operator!=( std::string const& str, substring const& sub );
bool operator!=( substring const& sub, std::string const& str );
// Equality/Inequality tests between substring and zero-terminated string:
bool operator==( substring const& sub, char const* cstr );
bool operator!=( substring const& sub, char const* cstr );
bool operator==( char const* cstr, substring const& sub );
bool operator!=( char const* cstr, substring const& sub );
#endif // _CIS62_SUBSTRING_H_INCLUDED_
Open substring.cpp file and add code for each operator function. For example,
// substring.cpp
substring& substring::operator=( substring const& other )
{
if ( this == &other ) // beware of self assignment!
return *this;
m_begin = other.m_begin;
m_end = other.m_end;
m_parse_begin = other.m_parse_begin;
m_parse_success = other.m_parse_success;
return *this;
}
Test your code against this new version of the main driver: substr2_main.cpp.
You have 2 weeks to complete this assignment. When ready, submit your source files
via e-mail attachment sent to:
Igor.Kholodov@bristolcc.edu
Please ZIP multiple files into a single archive before attaching.
Thank you!