Κοίτα τα χαρακτηριστικά της κατηγορίας εγχόρδων σας . Σειρά σας πρέπει να έχει την ακόλουθη :
Δυναμική μέγεθος ( αλλάζει με την είσοδο του χρήστη , ή εκχώρηση )
Να είναι σε θέση να γνωρίζουν το μέγεθος των χορδών σας
εξόδου το string . . αποθηκευμένα στη μνήμη.
Αποθηκεύστε το μέγεθος .
Αποθηκεύστε τον πρώτο χαρακτήρα της συμβολοσειράς μας ( δεδομένου ότι είναι δυναμική , δεν ξέρεις πού τελειώνει . ) 2
Ξεχωριστή που διαθέτει της κατηγορίας εγχόρδων σας είναι πληροφορίες ( ή στοιχεία ), και ποιες είναι οι συναρτήσεις. Συνήθως , κάτι που συνεπάγεται δράση είναι μια λειτουργία . Από τη λίστα μας : . .
Δυναμική μέγεθος - > Λειτουργία με βάση πώς να κατασκευάσει μια σειρά
ξέρετε το μέγεθος του string - > Λειτουργία
εξόδου της εγχόρδων - . > Λειτουργία
Αποθηκεύστε το μέγεθος - > δεδομένων /πληροφοριών
Αποθηκεύστε την αρχή του string - . > δεδομένων /πληροφοριών
εικόνων . 3
Ορίστε το ρόλο της κάθε λειτουργίας , καθώς και το είδος των δεδομένων τα μέλη της τάξης σας με απλά λόγια . Από την προηγούμενη λίστα : . .
Δυναμική Μέγεθος - Λειτουργία - Κατασκευάζει το string
ξέρετε το μέγεθος - Λειτουργία - Επιστρέφει μέγεθος της συμβολοσειράς
εξόδου το string - Λειτουργία - Επιστρέφει το περιεχόμενα εγχόρδων
Αποθηκεύστε το μέγεθος - . δεδομένα /πληροφορίες - θα πρέπει να είναι θετικός ακέραιος
Αποθηκεύστε την αρχή του string - . δεδομένα /πληροφορίες - . ένας χαρακτήρας
Η
Εφαρμογή του String Class - Header File
Η 4
Δημιουργήστε ένα αρχείο κεφαλίδας που ονομάζεται mystring.h ( File - > Add - > Header File ) . Ένα αρχείο κεφαλίδα είναι σαν ένα δείκτη για τον κωδικό σας .
5
Ορίστε την τάξη σας στο αρχείο κεφαλίδας . Αυτός είναι ο κώδικας :
τάξη MyString {
Η 6
Δημιουργία δημόσιων λειτουργιών για την αντιμετώπιση όλων των λειτουργιών στο σχεδιασμό σας . Αυτός είναι ο κώδικας :
κοινό:
Συμβολοσειρά ( ) ? //Δημιουργεί ένα κενό string
MyString ( const char * ) ? //Δημιουργεί και προετοιμάζει το string για να κάποια αξία ( στην παρένθεση)
~ συμβολοσειρά ( ) ? //αποδεσμεύει πόρους δυναμική μνήμη
int getSize ( ) ? //μας δείχνει το μέγεθος του string
char * outputmystring ( ) ? //εξάγει το string
Η 7
Δημιουργία ιδιωτικών μέλη δεδομένων για την αποθήκευση των δεδομένων των χορδών σας . Αυτός είναι ο κώδικας :
private: int
_size ? //Αποθηκεύει το μέγεθος της συμβολοσειράς
char * _mystr ? /* Αυτό είναι ένα μέλος δεδομένων που δείχνει στο πρώτο χαρακτήρα του string . Αν γνωρίζουμε τον πρώτο χαρακτήρα και το μέγεθος του string, μπορούμε να έχουμε πρόσβαση όλοι οι χαρακτήρες του * /
}
8
Πληκτρολογήστε την πλήρη κεφαλίδα κωδικό σας αρχείο ( μπορείτε να αντιγράψετε και να επικολλήσετε από εδώ ) :
/* mystring.h * /
τάξη MyString {
κοινό:
Συμβολοσειρά ( ) ?
Συμβολοσειρά ( const char * ) ?
~ Συμβολοσειρά ( ) ?
int getSize ( ) ?
char * outputmystring ( ) ?
private:
int _size ?
char * _mystr ?
}
εικόνων Εφαρμογή του String Class - Κωδικός αρχείου
Η 9
Δημιουργήστε ένα αρχείο που ταιριάζουν CPP ονομάζεται mystring.cpp ( File- > Add - > file cpp - κενό αρχείο ) . Εδώ , θα περιλαμβάνει τους ορισμούς για τη λειτουργία στο αρχείο κεφαλίδας mystring.h . Ακριβώς όπως ένα βιβλίο , header αρχεία αποθηκεύουν τα βασικά tittles , και cpp αρχεία αποθηκεύουν το περιεχόμενο και τους ορισμούς της κάθε κεραία .
Η 10
Συμπεριλάβετε τα CString και iostream βιβλιοθήκες . Αυτός είναι ο κώδικας :
/* mystring.cpp * /
# include # include Ορίστε τις κατασκευαστικές λειτουργίες (άδειο κατασκευών και κατασκευαστικών παραμέτρων) . Εδώ είναι ο κώδικας : MyString :: Συμβολοσειρά ( ) //Κενό κατασκευαστή { _size = 0 ? _mystr = 0 ? } MyString :: MyString ( const char * str ) /* κατασκευάσματα και προετοιμάζει ένα string στην τιμή * / { if ( ! str ) { _size = 0 ? _mystr = 0 ? } /* αν δεν έχει αξία , string είναι άδειο * / άλλο { _size = strlen ( str ) ? _string = new char [ _size +1 ] ? /* Αυτό είναι δυναμική κατανομή μνήμης μας , με βάση το μέγεθος της παραμέτρου * / strcopy ( _string , str ) ? } } Ορίστε τη λειτουργία καταστροφέα . Αυτή η λειτουργία χρησιμοποιείται για να de - κατανέμουν τη δυναμική μνήμη . Κάθε φορά που η μνήμη που χρησιμοποιείται αλλαγές , ο υπολογιστής πρέπει να γνωρίζουν ότι μπορεί να χρησιμοποιήσει αυτό το τμήμα της μνήμης για άλλους σκοπούς ? Η διαδικασία αυτή ονομάζεται de - κατανομή . Ο κωδικός : MyString :: ~ MyString { delete [ ] _mystr ? } /* Αποδεσμεύει δυναμική μνήμη μας * / Ορίστε τη λειτουργία για να επιστρέψει το μέγεθος της συμβολοσειράς και εξόδου το string . Το μέγεθος είναι απλή . Μόλις εμφανιστεί η αξία του _size : int MyString :: getSize ( ) { επιστροφή ( _size ) ? } Για να γράψουμε το , θα είμαστε σε έξοδο κάθε χαρακτήρα μέχρι να φτάσουμε στο τέλος του κορδόνι ( που συμβαίνει να είναι η αξία της _size ) : void MyString :: outputmystring ( ) { για ( int αριθμό = 0 ? μετράνε == μέγεθος ? μετράνε + + ) { cout <<_mystr [ μετρούν ] ? } cout < Εδώ είναι πλήρης κωδικός σας για mystring.cpp : /* mystring.cpp * / # include # include MyString :: Συμβολοσειρά ( ) //Κενό κατασκευαστή { _size = 0 ? _mystr = 0 ? } MyString :: MyString ( const char * str ) /* κατασκευάσματα και προετοιμάζει ένα string στην τιμή * / { αν ( str ) { _size = 0 ? ! _mystr = 0 ? } /* αν δεν αξία , string είναι άδειο * / άλλο { _size = strlen ( str ) ? _string = νέα char [ _size +1 ] ? /* Αυτό είναι δυναμική μας κατανομή μνήμης , με βάση το μέγεθος της παραμέτρου * / strcopy ( _string , str ) ? } } MyString :: ~ Συμβολοσειρά { delete [ ] _mystr ? } /* αποδεσμεύει δυναμική μνήμη μας * /int MyString :: getSize ( ) { επιστροφή ( _size ) ? } άκυρη MyString : : outputmystring ( ) { για ( int αριθμό = 0 ? μετράνε == μέγεθος ? μετράνε + + ) { cout <<_mystr [ μέτρηση ] ? } cout <
Η 11
Η 12
Η 13
εικόνων
Πνευματικά δικαιώματα © Γνώση Υπολογιστών Όλα τα δικαιώματα κατοχυρωμένα