Frage zum Operator



  • Hi,

    als Übung möchte ich eine String.h Klasse schreiben, in der der Operator "+"
    realisiert werden soll. Um strcat() zu benutzen, muss "rhs" in char* umgewandelt
    werden. Wie macht man das?

    Danke

    class String
    {
    	private:
    		char *zeichenkette, hilfe;
    		size_t strlen_helper (char * zeichenkette)
    		{ 
          			if (zeichenkette == NULL) 
             			return 0; 
          			else  
            			return strlen (zeichenkette); 
       		}
    	public:
    		String(char *zeichenkette_ = "\0"): 
    			zeichenkette(new char [strlen_helper(zeichenkette_) + 1])
    		{
    			strcpy (zeichenkette, zeichenkette_);
    		}
    
    		~String()
    		{
    			delete [] zeichenkette;
    		}	
    		String operator + (const String&);
    		void print();
    };
    
    String String::operator+(const String& rhs)
    {
    	hilfe = new char(rhs.strlen_helper() + 1);
    	//strcpy(hilfe, rhs.c_str());
    	//strcat(zeichenkette, hilfe);
    	return zeichenkette;
    }
    
    void String::print()
    {
    	cout << zeichenkette << endl;
    }
    

    Mod sagt: Bitte Code-Tags verwenden!


Anmelden zum Antworten