Quellcode
- class string {
- public:
- string();
- ~string();
- string& operator=(const string &);
- string& operator=(const char[]);
- private:
- char *itsChar;
- int itsSize;
- };
- string::string():
- itsChar(0),itsSize(0)
- { }
- string::~string() {
- if (!itsChar == 0)
- delete [] itsChar;
- }
- string& string::operator=(const string &rhs) {
- itsSize = rhs.itsSize;
- if (!itsChar == 0)
- delete [] itsChar;
- itsChar = new char[itsSize];
- *itsChar = rhs.*itsChar;
- return *this;
- }
- string& string::operator=(const char str[]) {
- itsSize = sizeof(str);
- if (!itsChar == 0)
- delete [] itsChar;
- itsChar = new char[itsSize];
- *itsChar = str;
- return *this;
- }
Ich versuche mir grade selber eine String-Klasse zu schreiben. Allerdings habe ich zwei Probleme, bei denen ich nicht weiß, was daran falsch ist. Mein Kompiler gibt folgende Fehler aus:
Quellcode
- strings.cpp: In member function 'string& string::operator=(const string&)':
- strings.cpp:26: error: '((string*)this)->string::itsChar' cannot be used as a member pointer, since it is of type 'char*'
- strings.cpp: In member function 'string& string::operator=(const char*)':
- strings.cpp:35: error: invalid conversion from 'const char*' to 'char'
theharlekin.de
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von stanny ()