Errors that I cannot figure out
I am getting a couple of errors when I compile this program and all I seem to be doing today is making them worse.
This program is a homework program that I did before and it worked, but my program structure was totally different. I am re-writing it again as a class(we are working about classes , structs, inheiritance etc., and I wanted to try out this new material on a program that I had done before), but have screwed up in my functions and am just confused now. I know this is a case of messing with it for too long and the more I try to correct it the more I am messing it up.
Code:
#include <string>
#include <iostream>
using namespace std;
class PString : public std::string
{
public:
PString( const std::string &aString );
bool isPalindrome() const;
};
PString::PString( const std::string &aString ) : std::string( aString )
{
}
bool PString::isPalindrome() const
{
string reverse(string word)
{
string reverse;
int length=word.length();
for(int i=length;i>=0;i--)
{
reverse=reverse+word[i];
}
return reverse;
}
bool pal(string word)
{
bool pal=true;
if(word!=reverse(word))
{
pal=false;
}
return pal;
}
return true;
}
int main()
{
std::string str;
std::cout << "This program is a palindrome-testing program. Enter a string to test:\n";
std::cin >> str;
// Create a PString object that will check strings
PString s(str);
// Check string and print output
if (s.isPalindrome())
{
std::cout << s << " is a palindrome";
}
else
{
std::cout << s << " is not a palindrome";
}
std::cout << std::endl;
system("pause");
return 0;
}
Specifically, I am getting error code C2601 on line string reverse(string word) and bool pal(string word).
I get error C2780 two lines below that line and it tells me there is a problem in the void function- but I have no void function.
What do I need to look at to get this to work? (Besides aspirin and a stiff drink!)