Θα πρέπει να χρησιμοποιούν ένθετα μαθήματα σε αυτή την περίπτωση;




Είμαι εργάζονται για μια συλλογή από κλάσεις που χρησιμοποιούνται για αναπαραγωγή βίντεο και εγγραφής. Έχω μια κύρια κατηγορία που ενεργεί όπως το κοινό περιβάλλον εργασίας, με μεθόδους όπως `play()`, `stop()`, `pause()`, `record()`κλπ ... Τότε θα έχουν μαθήματα κινητήριος δύναμη που κάνει την αποκωδικοποίηση βίντεο και κωδικοποίηση βίντεο.


Μόλις έμαθα για την ύπαρξη των ένθετων τάξεις σε C ++, και είμαι περίεργος να μάθω τι σκέφτονται οι προγραμματιστές για τη χρήση τους. Είμαι λίγο επιφυλακτικοί και δεν είναι πραγματικά σίγουρος ποια είναι τα πλεονεκτήματα / μειονεκτήματα, αλλά φαίνεται (σύμφωνα με το βιβλίο είμαι ανάγνωση) που θα χρησιμοποιηθεί σε περιπτώσεις όπως η δική μου.


Το βιβλίο δείχνει ότι σε ένα σενάριο σαν τη δική μου, μια καλή λύση θα ήταν να φωλιάζουν οι κατηγορίες κινητήριος δύναμη μέσα στην τάξη περιβάλλον, έτσι δεν υπάρχουν ξεχωριστά αρχεία για τις κατηγορίες που ο πελάτης δεν έχει σκοπό να χρησιμοποιήσει, και να αποφευχθούν τυχόν συγκρούσεις ονοματοδοσίας; Δεν ξέρω για αυτές τις δικαιολογίες. Ένθετη τάξεις είναι μια νέα έννοια για μένα. Απλά θέλω να δω τι σκέφτονται οι προγραμματιστές για το θέμα.
Θα ήθελα να είναι λίγο διστακτικοί στη χρήση ένθετων κατηγορίες εδώ. Τι γίνεται αν έχετε δημιουργήσει μια αφηρημένη κλάση βάσης για μια «οδηγός πολυμέσων» για να χειριστεί το back-end πράγματα (κινητήριος δύναμη), και μια ξεχωριστή κατηγορία για το front-end εργασία; Το front-end class θα μπορούσε να λάβει ένα δείκτη / αναφορά σε μια υλοποιηθούν τάξη οδηγού (για τον κατάλληλο τύπο και την κατάσταση των μέσων ενημέρωσης) και να εκτελέσει τις αφηρημένες λειτουργίες σχετικά με τη δομή κινητήριος δύναμη.


Η φιλοσοφία μου είναι να πάει μπροστά και να κάνουν τα δύο δομές πρόσβαση του πελάτη σε μια γυαλισμένη τρόπο, ακριβώς κάτω από την υπόθεση ότι θα μπορούσαν να χρησιμοποιηθούν σε συνδυασμό.


Θα αναφορά κάτι σαν [QTextDocument](http://qt-project.org/doc/qt-4.8/qtextdocument.html) σε Qt. Θα παρέχει άμεση διασύνδεση με το γυμνό χειρισμό μέταλλο δεδομένων, αλλά και να περάσει την αρχή, μαζί με ένα αντικείμενο, όπως ένα QTextEdit να κάνει τη χειραγώγηση.
Αυτή είναι η γνώμη μου, αλλά? όπως ακριβώς και οι τάξεις περίπτωση δεν, θα ήθελα να εφαρμόσουν μια `copy`μέθοδο του είδους στην τάξη για να καταστεί δυνατή η τροποποίηση, διατηρώντας παράλληλα το αμετάβλητο, αλλά υπάρχει ορισμένες περιπτώσεις που δεν μπορώ να βοηθήσω να το μεταβλητό? Για παράδειγμα, όταν κάτι αναμένεται να γίνει η λειτουργία αντιγραφής είναι πολύ μεγάλη και αργή για την κατηγορία? όπως όταν η τάξη έχει τόσα πολλά συχνά τροποποιημένο μέλη. Και μην ανησυχείτε για χιλιάδες περιπτώσεις που επιπλέουν γύρω στη μνήμη, επειδή είναι αυτόματα GC'ed, οπότε το πιο πραγματικό πρόβλημα είναι ο χρόνος κόστος της αντιγραφής περιπτώσεις της κλάσης. Παρακαλώ πείτε μου εάν η γνώμη μου είναι κάπως λάθος :) Τι εννοείς "τάξεις"; 
Είναι μία πλατφόρμα οπτικοακουστική και διαδραστική για να μάθεις κάτι περισσότερο από τα βασικά σε μία γλώσσα. Μπορείς να φτάσεις μέχρι το 25 επίπεδο (αυτή τη στιγμή είσαι στο 6) ... και αν θέλεις να εμπλουτίσεις μπορείς να προσθέσεις να μάθεις "Ελληνικά" από την αγγλική γλώσσα, παράλληλα. Θα πρέπει να δώσετε περισσότερες πληροφορίες σχετικά με το περιβάλλον ανάπτυξής σας για να πάρετε μια συγκεκριμένη απάντηση.


Για παράδειγμα, με ένα C # έργο στο Visual Studio, μπορείτε να κάνετε δεξί κλικ στα Project-> Ιδιότητες και, στη συνέχεια, να συμπληρώσετε το πεδίο «Εντολή επιχειρήματα γραμμή» στην καρτέλα «Debug». <p>το .net 4.0 επιτρέπει στα πρωτεύοντα σύνολα interop (ή μάλλον, τα bits που χρειάζεστε) να ενσωματωθούν στη συνέλευση σας, ώστε να μην χρειάζεται να τα αναπτύξετε παράλληλα με την εφαρμογή σας.</p><p>για οποιονδήποτε λόγο, αυτή η συνέλευση δεν μπορεί να ενσωματωθεί - αλλά αυτό ακούγεται σαν να μην είναι πρόβλημα για εσάς. ανοίξτε την καρτέλα ιδιότητες για τη συνέλευση στο visual studio 2010 και ορίστε "ενσωμάτωση τύπων interop" σε "false".</p><p>edit: δείτε επίσης την <a href="https://stackoverflow.com/a/4553402/641833">απάντηση</a> του michael gustus, καταργώντας το επίθημα <code>class</code> από τους τύπους που χρησιμοποιείτε.</p> εγκατέστησα την τελευταία έκδοση του προγράμματος και εξακολουθούσα να έχω το ίδιο πρόβλημα. τελικά με τη βοήθεια απο το σχετικό [google group](https://groups.google.com/g/devede-forum/c/2thoie_dsxq) του devedeng, κατάλαβα οτι επιλέγω λάθος encoding type για το αρχείο υποτίτλων που θέλω να βάλω στην ταινία.

όταν επέλεξα το σωστό τύπο encoding για το αρχε… τα εισαγωγικά είναι απαραίτητα όταν το όνομα περιέχει κενά. το static όνομα δεν πρέπει να περιέχει κενά, οπότε δεν είναι απαραίτητο.

σε ένα ποιο πολύπλοκο παράδειγμα

[image]

βάζω και τα δύο ονόματα και το static και το pretty, δες πως το πρώτο δεν έχει κενά. εδώ τα εισαγωγικά είναι απαραίτητα, ώσ… Η προτιμώμενη μέθοδος είναι να χρησιμοποιήσετε πραγματικά την ιδιότητα υπό όρους για να τυλίξει τις κλήσεις εντοπισμού σφαλμάτων σας, μην χρησιμοποιήσετε τις οδηγίες μεταγλωττιστή. #ifs μπορεί να πάρει δύσκολες και μπορεί να οδηγήσει σε περίεργα προβλήματα κατασκευής.


Ένα παράδειγμα της χρήσης ενός υπό όρους χαρακτηριστικό είναι η εξής (σε C #, αλλά λειτουργεί σε VB.NET πολύ):



```
[ Conditional("Debug") ]
private void WriteDebug(string debugString)
{
  // do stuff
}

```

Κατά τη μεταγλώττιση, χωρίς το σετ σημαία DEBUG, κάθε κλήση προς WriteDebug θα καταργηθούν όπως υποτίθεται συνέβαινε με Debug.Write (). Μόλις τελειώνεις κάθε μάθημα - εκεί που σου βγάζει τους πόντους XP - από κάτω δεξιά έχει ένα κουμπί "Συνέχεια" και από αριστερά "Επανάληψη μαθήματος". Στο "Επανάληψη μαθήματος" μπορείς να δεις όλες τις προτάσεις στις οποίες απάντησες στο συγκεκριμένο μάθημα, είτε σωστές είτε λάθος. αφού γράψεις ένα track με μία φωνή, πάνε στην καρτέλα tracks και επέλεξε add new όπου έχεις επιλογές όπως mono track ή stereo track. όταν επιλέξεις κάποιο θα δημιουργηθεί ένα καινούριο κανάλι κάτω από το πρώτο όπου θα μπορείς να γράψεις 2η φωνή. όταν θα αναπαράγεις όλο τα αρχείο θα παίζουν και τα 2 … κι εγώ το ίδιο αναρωτιέμαι. είμαι στο επίπεδο 12 με 47% ευχέρεια στη χρήση της γλώσσας. Έχω ολοκληρώσει το english tree. από δω και πέρα τι κάνουμε; απλά ενίσχυση γνώσεων για να ανέβουμε επίπεδα;