Originally Posted by
siavoshkc
Where is the class?
I posted the function (~operator) but I'll post the entire header and source code:
Code:
//reverse.h
#ifndef ReverseString_H
#define ReverseString_H
#include <iostream>
#include "string.h"
#include "strdrv.h"
class ReverseString: public String
{
public:
ReverseString();
ReverseString(const ReverseString &rhs);
ReverseString(const char *str);
ReverseString operator=(const ReverseString &rhs);
ReverseString operator~();
};
#endif
// reverse.cpp
#define _CRT_SECURE_NO_DEPRECATE 1
#include <iostream>
#include <assert.h>
#include <algorithm>
#include "reverse.h"
using namespace std;
ReverseString::ReverseString()
{ }
ReverseString::ReverseString(const ReverseString &rhs)
{ }
ReverseString::ReverseString(const char *str)
{
name = NULL;
assert( str != 0);
stringlength = strlen(str);
size = stringlength + 1;
buf = new char[size];
strcpy(buf, str);
}
ReverseString ReverseString::operator =(const ReverseString &rhs)
{
if(this != &rhs)
{
delete []buf;
stringlength = rhs.stringlength;
size = stringlength + 1;
buf = new char[size];
strcpy(buf, rhs.buf);
}
return *this;
}
ReverseString ReverseString::operator ~()
{
int k = 0;
char *temp = buf;
for(int i = stringlength-1; i>=(stringlength/2); i--)
{
swap(temp[k], temp[i]);
k++;
}
return temp;
}