Dynamische typen data niet over een vaste grootte . Wanneer een computer slaat een getal , gebruikt hetzelfde aantal bytes aan het getal " 0 " en het nummer " 20000 ". Maar proberen om een zin en het panorama verandert dramatisch slaan . Aangezien elke zin heeft een andere lengte , het geheugen wordt gebruikt om de zin te slaan heeft om dynamisch te veranderen . Standaard C omvatte niet een string data type , en het ontwerpen van een dynamische reeks data type ( of klasse String ) is bijna een rite de passage van een nieuwe C /C + + programmeur . Wat je nodig hebt Computer C + + Compiler (aanbevolen : Visual C + + Express ) Toon Meer Aanwijzingen Ontwerp een klasse String 1 Visualiseer de functies van uw klasse String . Uw snaar moet de volgende : . Dynamic grootte ( veranderingen met input van de gebruiker , of de opdracht ) op Twitter In staat zijn om de grootte van uw code kennen Output of the string. opgeslagen in het geheugen . Store de grootte . Store het eerste teken van onze string ( want het is dynamisch , je weet niet waar het eindigt . ) kopen van 2 Afzonderlijke welke functies van uw klasse String zijn gegevens ( of data ) en welke zijn functies . Meestal , alles wat actie houdt is een functie . Uit onze lijst : . Dynamic grootte - > Functie op basis van hoe je een string te bouwen Ken de grootte van de string - > Function Output of the . koord - . > Function Store de grootte - . > gegevens /informatie Store het begin van de string - . > gegevens /informatie 3 Definieer de rol van elke functie , en het soort gegevens de leden van je klas in eenvoudige termen . Uit de vorige lijst : Dynamic Maat - Functie - Construeert de string Ken de grootte - Function - Retourneren stringgrootte Output de string - Function - Retourneren het . . inhoud touwtje Store de grootte - . gegevens /informatie - moet een positief geheel getal Store zijn het begin van de string - . gegevens /informatie - . een personage < br > Uitvoering van de String klasse - header file 4 Maak een header bestand genaamd mystring.h ( file - > Add - > header file ) . Een header -bestand is als een index voor uw code . 5 Bepaal je klas in de header file . Dit is de code : class mystring { 6 Maak publieke functies om alle functies in uw ontwerp aan te pakken . Dit is de code : publiek : mystring ( ) ; //maakt een lege tekenreeks mystring ( const char * ) ; //creëert en initialiseert de string aan enige waarde ( tussen haakjes ) op Twitter ~ mystring ( ) ; //deallocates dynamische bronnen geheugen int getSize ( ) ; //laat ons de grootte van de string char * outputmystring ( ) ; //outputs de string 7 Maak privegegevens leden om de gegevens van uw touw slaan . Dit is de code : prive : int _size ; //slaat de stringgrootte char * _mystr ; /* Dit is een data- lid die verwijst naar de eerste karakter van de string. Als we weten dat het eerste teken en de grootte van de string , kunnen we toegang tot al zijn personages } 8 Typ uw volledige header-bestand code * / ( u kunt kopiëren en plakken vanaf hier ) : /* mystring.h * klasse mystring / { openbare : mystring ( ) ; mystring ( const char * ) ; ~ mystring ( ) ; int getSize ( ) op ; char * outputmystring ( ) ; prive : < br > int _size ; char * _mystr ; } Uitvoering van de String klasse - Code File 9 Ontwerp een huisstijl CPP bestand genaamd mystring.cpp ( file - > Add - > cpp file - leeg bestand ) . Hier vindt u onder meer de definities voor de functie op de mystring.h header file . Net zoals een boek , header bestanden op te slaan de belangrijkste tittles en cpp bestanden op te slaan van de inhoud en de definities van elke tittel . 10 Voeg de CString en iostream bibliotheken . Dit is de code : /* mystring.cpp * / # include # include 11 de bouw functies ( lege bouw en parameter bouw ) definiëren . Hier is de code : mystring :: mystring ( ) //Leeg constructeur { _size = 0 ; _mystr = 0 ; < br } mystring > :: mystring ( const char * str ) /* constructen en initialiseert string naar een waarde * / { if ( ! str ) { _size = 0 ; _mystr = 0 ; } /* als er geen waarde , touwtje is leeg * / anders { _size = strlen ( str ) ; < br > _string = new char [ _size 1 ] ; /* dit is onze dynamische toewijzing geheugen , gebaseerd op de grootte van de parameter strcopy * / ( _string , str ) ; } } 12 Definieer de destructor functie . Deze functie wordt gebruikt om de- wijzen het dynamisch geheugen . Telkens wanneer het gebruikte geheugen verandert , moet de computer dat het dat deel van het geheugen voor andere doeleinden kan gebruiken , dit proces wordt de toewijzing genoemd. De code : mystring :: ~ mystring { verwijderen [ ] _mystr ; } /* deallocates onze dynamisch geheugen * / 13 Definieer de functie om terug te keren de string grootte en de string . De grootte is eenvoudig . Gewoon weer de waarde van _size : int mystring :: getSize ( ) { return ( _size ) ; } Om de string uitvoeren , zullen we elk personage uitvoeren totdat we het einde van het bereiken string ( die toevallig ook de waarde van _size zijn) : leegte mystring :: outputmystring ( ) op { for ( int count = 0 ; count == grootte ; count + + ) op { cout << _mystr [ count ] ; } cout << endl ; } 14 Hier is uw complete code voor mystring.cpp : < br > /* mystring.cpp * / # include # include mystring :: mystring ( ) //Leeg constructeur { _size = 0 ; _mystr = 0 ; } mystring :: mystring ( const char * str ) /* constructen en initialiseert string naar een waarde * / { if ( str ) op { _size = 0 ; ! _mystr = 0 ; } /* als er geen waarde , touwtje is leeg * / anders { _size = strlen ( str ) ; _string = new char [ _size 1 ] ; /* dit is onze dynamische toewijzen van geheugen , gebaseerd op de grootte van de parameter * / strcopy ( _string , str ) ; } } mystring :: ~ mystring { verwijderen [ ] _mystr ; } /* deallocates onze dynamisch geheugen * / int mystring :: getSize ( ) { return ( _size ) ; } leegte mystring : : outputmystring ( ) op { for ( int count = 0 ; count == grootte ; count + + ) op Twitter { cout << _mystr [ count ] ; } cout << endl ; }
|