Παρά το γεγονός ότι μόλις εύρεση τιμών του δείκτη (δηλαδή να χρησιμοποιούν «* s» αντί για «s») υπάρχει μεγαλύτερα ψάρια για να τηγανίσετε! Εκτός αν υπάρχει ένας καλός λόγος για την τοποθέτηση ενός αντικειμένου στο σωρό δεν πρέπει να το κάνετε αυτό:
int main()
{
Snipped s;
std::cout << s << '\n' << s;
}
Βρήκα τη χρήση του new
και έτσι delete
πολύ σπάνιο στα προγράμματα που γράφω. Εκτός από το πιο απλό κώδικα αυτό αποδίδει εύκολα και συχνά πιο γρήγορα τα προγράμματα. Αν πρέπει πραγματικά να διαθέσει κάτι στο σωρό, χρησιμοποιήστε κάποιο είδος του έξυπνου δείκτη για να βεβαιωθείτε ότι το αντικείμενο απελευθερώνεται αυτόματα:
int main()
{
std::unique_ptr<Snipped> s(new Snipped);
std::cout << *s << '\n' << *s;
}
Σαν δευτερεύουσα σημείωση, δεν χρησιμοποιούν std::endl
ούτε εκτός αν πραγματικά την πρόθεση να ξεπλύνετε το ρεύμα: Βρήκα ακατάλληλη χρήση του std::endl
να είναι η αιτία των μαζικών προβλήματα απόδοσης πάνω από μία φορά. Σίγουρα τις περισσότερες φορές δεν έχει σημασία, αλλά σε ακόμη πιο περιπτώσεις που δεν ενδιαφέρονται για το ίδιο επίπεδο. Αν δεν σας αρέσει χρησιμοποιείτε '\n'
ή "\n"
μπορείτε αντ 'αυτού να χρησιμοποιήσετε ένα προσαρμοσμένο χειριστή:
std::ostream& nl(std::ostream& out) { return out << '\n'; }
Με αυτό μπορείτε να χρησιμοποιήσετε nl
αντί του std::endl
και δεν πάσχουν από πάντα έξαψη το ρεύμα.