Esiste una convenzione di denominazione comune per le funzioni virtuali private in C++? Ho visto convenzioni come do_something(...)
, something_vfunc(...)
, ecc. Quale convenzione viene solitamente utilizzata nei progetti C++?Esiste una convenzione di denominazione comune per le funzioni virtuali private in C++?
risposta
La convenzione utilizzata nello standard (ad esempio tra i tanti std::numpunct
) è che do_something
è un metodo protected
virtual
, e something
è un metodo public
non virtual
che chiama.
utilizzare il prefisso dyn_
. quindi potresti vedere:
class t_type {
public:
/* ... */
void method() {
this->dyn_method();
}
private:
virtual void dyn_method() const = 0;
};
class t_subtype : public t_type {
public:
/* ... */
private:
virtual void dyn_method() const {
...
}
};
per quanto riguarda un comune - non sono sicuro.
Ci sono molte convenzioni sono sicuro. Tendo ad utilizzare un trailing Impl
o _impl
a seconda della convenzione del resto del nome del metodo. Quindi ComputeFoo
chiama ComputeFooImpl
secondo necessità.
Diverse squadre e persone utilizzano standard diversi. Il mio personale non deve aggiungere alcun prefisso o suffisso speciale. Il nome dovrebbe rappresentare ciò che fa questa funzione. IDE ti aiuterà a vedere se è privato o protetto, virtuale o meno. E sì, è un buon gusto rendere privata o protetta la funzione virtuale, ma se si aggiunge una nuova funzione solo per seguire questo principio - pensaci due volte.
Sono d'accordo. I moderni IDE sono bravi a fornire suggerimenti sul codice. L'aggiunta di suffissi e prefissi ai nomi di variabili è vecchia scuola. Li rende (IMHO) più brutti e più difficili da interpretare. – Nav
- 1. Esiste una convenzione per denominare le "funzioni private" in bash?
- 2. Esiste una convenzione Clojure per denominare funzioni private?
- 3. Esiste una comune convenzione di denominazione dei pacchetti Lisp?
- 4. C++: funzioni virtuali private vs. funzioni virtuali puri
- 5. Esiste una convenzione di denominazione per le classi implicite?
- 6. Convenzione di denominazione per le viste Django?
- 7. Convenzione di denominazione Scala per le opzioni
- 8. Che cos'è una convenzione di denominazione comune per le classi RAII?
- 9. Esiste una convenzione di denominazione consigliata per i file che contengono solo funzioni/metodi di estensione?
- 10. Convenzione di denominazione per le costanti Scala?
- 11. Esiste una convenzione per le dichiarazioni dei puntatori in C?
- 12. Perché le funzioni virtuali in C++ sono chiamate "virtuali"?
- 13. Convenzione di denominazione per modelli comuni?
- 14. Convenzione di denominazione per oggetti in java
- 15. metodo Objective C convenzione di denominazione
- 16. Convenzione di denominazione del test dell'unità Python per le funzioni del modulo
- 17. Convenzione di denominazione per il vincolo univoco
- 18. Convenzione di denominazione per le espressioni regolari Python?
- 19. Perché utilizzare le funzioni virtuali?
- 20. Convenzione di denominazione in Objective C/C, inizia con "_"?
- 21. Convenzione di denominazione Microsoft VB.NET
- 22. Come si può implementare le funzioni virtuali C++ in C
- 23. iPhone ivar convenzione di denominazione
- 24. Esiste una convenzione di denominazione per i valori enum con una cifra iniziale?
- 25. Collegamento interno per funzioni private C++?
- 26. Convenzione di denominazione delle getter asincrono
- 27. Esiste una convenzione di denominazione standard per moduli/spazio dei nomi in haskell?
- 28. Convenzione di denominazione per le risorse (immagini, css, js)?
- 29. Convenzione di denominazione per moduli/cartelle Rails
- 30. Convenzione di denominazione e caratteri validi per una chiave Redis
'mvp_doSomething()'. membro, virtuale, privato :) –
No, c'è tutta una pletora di convenzioni. – juanchopanza
@LuchianGrigore mvp_hwnd_getHandle() ... La rabbia, la rabbia incontrollabile ... jons34yp - attenersi alle stesse convenzioni delle variabili? – MrFox