🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: de.comp.lang.c++
Article #1760

Re: Vergleich 'strcmp()' 'string == string' (Was: Q: gcc 2.7.1: Aufruf einer Konstruktormethode aus einer anderen)

#1760
From: Nico Josuttis
Date: Tue, 05 Mar 1996 15:57
36 lines
2190 bytes
Sorry, aber ich moechte mal kurz einschreiten, habe aber nicht alle
Mails dazu gelesen. Deshalb ein paar Fakten, die (sorry)
evtl. schon jemand gepostet hat:

 1) Der Standard umfasst in der Bibliothek einen String.
    Der kann natuerlich von und nach char* gewandelt werden
    und auch Operationen mit char* durchfuehren.
    Insofern verstehe ich die Diskussion mit char* nicht ganz.
    Wenn etwas char* ist beziehe ich es mit ein.
    Insgesamt ist doch aber wohl die Verwendung von + statt strcat()
    und == statt strcmp() weniger fehleranfaellig und somit vorzuziehen.

 2) Die Sache ist natuerlich eine Ebene hoeher/abstrakter und
    deshalb mitunter langsamer.
    ABER NICHT UNBEDING/IMMER:
     Typische/gute kommerzielle String-Klassen kopieren String
     z.B. nicht sondern verwalten einfach zwei Verweise auf
     die gleiche Zeichenfolge.
     Man beachte, dass String relativ selten geaendert dagegen oft
     kopiert und zugeweisen werden.
     Damit sind wir evtl. sogar SCHNELLER als mit einfachen
     char* Implementierungen.
     Das ganze steht u.a. im Stroustrup und an vielen anderen
     Stellen und nennt sich das "reference counting idiom" oder
     ``handle/body class idiom'' oder ``Counted Body Pattern''.

Generell sollte, denke ich deshalb string verwendet werden
und mit char* zusammen verwendet werden, wenn es aufgrund
von Schnittstellen nach aussen notwendig ist.
Es lohnt sich.

-- 
Nico                             address: BREDEX GmbH, Nicolai Josuttis
email:   nico@bredex.de                   Fallersleber-Tor-Wall 23
phone:   +49 531 24330-0                  D-38100 Braunschweig
fax:     +49 531 24330-99                 Germany
Technical Details
Message-ID: <DnsxoD.Cy2@bredex.de>
Path: arc1-ca.pugleaf.net!news.braunschweig.pop.de!bredex!nico
References: <4h2pg1$cto@news.BelWue.DE> <PDZ9BGIH@wuschel.ibb.schwaben.com> <4hasih$73g@news.rrz.uni-koeln.de>

Show Full Headers
Complete Article Headers
Newsgroups: de.comp.lang.c++
Path: arc1-ca.pugleaf.net!news.braunschweig.pop.de!bredex!nico
From: nico@bredex.de (Nico Josuttis)
Subject: Re: Vergleich 'strcmp()' 'string == string' (Was: Q: gcc 2.7.1: Aufruf einer Konstruktormethode aus einer anderen)
Message-ID: <DnsxoD.Cy2@bredex.de>
Reply-To: nico@bredex.de
Organization: Bredex GmbH
References: <4h2pg1$cto@news.BelWue.DE> <PDZ9BGIH@wuschel.ibb.schwaben.com> <4hasih$73g@news.rrz.uni-koeln.de>
Date: Tue, 5 Mar 1996 15:57:48 GMT