Hi,
ich lern seit etwa einer Woche C++ und wollte heute anfangen, mir eine eigene String-Klasse zu kreieren (ähnlich wie die von Java). Leider scheiterts bei mir schon bei einer simplen toUpperCase-Funktion. Das Programm bricht mit "MyString.exe hat ein Problem festgestellt und muss beendet werden." ab.
Hier mal der Code:
Header:
CPP-File
ich lern seit etwa einer Woche C++ und wollte heute anfangen, mir eine eigene String-Klasse zu kreieren (ähnlich wie die von Java). Leider scheiterts bei mir schon bei einer simplen toUpperCase-Funktion. Das Programm bricht mit "MyString.exe hat ein Problem festgestellt und muss beendet werden." ab.
Hier mal der Code:
Header:
C++:
/*
* String.h
*
* Created on: 13.04.2009
* Author: Kirodema
*/
#include <ostream>
#ifndef STRING_H_
#define STRING_H_
using namespace std;
class String {
char *str;
unsigned int length;
public:
String();
String(char str[]);
~String();
friend ostream &operator << (ostream &stream, String str);
unsigned int getLength() {return length;}
String toUpperCase();
};
#endif /* STRING_H_ */
CPP-File
C++:
/*
* String.cpp
*
* Created on: 13.04.2009
* Author: Kirodema
*/
#include "String.h"
String::String() {
// TODO Auto-generated constructor stub
}
String::String(char *str) {
this->str = str;
length = 0;
while(*str) {
length++;
str++;
}
}
String::~String() {
// TODO Auto-generated destructor stub
}
String String::toUpperCase() {
char *tmp = str;
while (*tmp) {
*tmp = *tmp & 223; // Bei der Zeile scheint der Hacken zu liegen
tmp++;
}
return String(tmp);
}
ostream &operator << (ostream &stream, String str) {
stream << str.str;
return stream;
}