Niewłaściwe jest używanie m_varname jako publicznej i tej samej klasy z _variable as privateKonwencja nazewnictwa dla zmiennych publicznych i prywatnych?
Odpowiedz
Obawy:
Dlaczego masz zmienne publiczne?
Identyfikatory zaczynające się od _ i __ są zarezerwowane dla bibliotek systemowych. W praktyce nie ma to większego znaczenia, ale miło być świadomym.
Z tymi rzeczami wynika, że nie ma nic złego w tworzeniu konwencji nazewnictwa, niezależnie od tego, jak wygląda. Po prostu bądź konsekwentny.
+1 za wskazówkę dotyczącą spójności. Możesz mieć najgorszą konwencję nazewnictwa, ale jeśli będzie spójna, poprawi to łatwość obsługi kodu. – Spidey
Zakładając, że pracujesz z C++, moją odpowiedzią jest NIE. Jest to całkowicie rozsądne, ale powinieneś naprawdę trzymać się tej konwencji.
Jednak języki napisane statycznie, takie jak C#, zakładają, że konwencje nazewnictwa są nieco zbędne.
Osobiście uważam, że to brzydkie, ale nie jest jasne, skąd pochodzi zmienna w C++, ponieważ takie słodzenie może pomóc.
Każdy ma swoje własne preferencje dotyczące konwencji nazewnictwa. Powiedziałbym, że więcej ludzi zgodziłoby się na to, że nie ma żadnych publicznych zmiennych w klasie.
To samo dotyczy C++ i Java: nie potrzebujesz żadnej notacji węgierskiej ani żadnych przedrostków/przyrostków. Masz słowo kluczowe "to"!
class MyClass {
private:
int value;
public:
MyClass(int value) {
this->value = value;
}
}
Oczywiście w tym prostym przykładzie można (powinno!) Wykorzystać liście inicjującej konstruktora;)
Tak więc, zamiast przy użyciu wszelkich niewygodnych notacje prostu zatrudnić możliwości językowej. Kiedy znasz nazwę zmiennej członkowskiej - wiesz, że jest idealna. Dlaczego chcesz to zaciemnić słowem "_"?
Jeśli chodzi o używanie tych samych nazw dla członków publicznych i prywatnych: to absolutnie złe myślenie! Dlaczego potrzebne są dwie rzeczy do reprezentowania tego samego w tej samej klasie? Uczyń ją prywatnie, nazwij ją doskonale i udostępnij publiczności i ustawiaczy.
"this" jest wskaźnikiem w C++. –
W prawo. Poprawi się! –
Nie należy używać nazw, które zaczynają się od znaku podkreślenia lub zawierają podwójne podkreślenie. Te nazwy są zarezerwowane dla kompilatora i implementacji. Poza tym ograniczeniem, możesz użyć dowolnej konwencji nazewnictwa, którą lubisz i którą lubisz. Osobiście nienawidzę żadnej formy "węgierskiej" notacji i też nie lubię zapisu m_something. Naprawdę przeszkadza mi, że jeśli potrzebuję zmienić typ zmiennej, muszę zaktualizować jej nazwę wszędzie tam, gdzie się pojawia. To ból głowy związany z utrzymaniem.
Istnieje wiele konwencji C++. Kluczem jest znalezienie jednego i/lub dostosowanie go. Trzymaj się tego i bądź konsekwentny. Jeśli pracujesz gdzieś, postaraj się zestrzelić jak najwięcej konwencji. Jest ich tak wiele, a każdy z nich ma dobre argumenty, ale mogą sobie zaprzeczyć (Joint Strike Fighter, Bell Labs, Mozilla i tak dalej).
Jeśli istnieją różne konwencje między różnymi częściami projektu przynajmniej spraw, aby każdy plik był spójny w sobie, a pliki .cpp i .h powinny być spójne ze sobą.
uważam, że lepiej być w stanie zrozumieć kod napisany przez różnych konwencjach, dzięki czemu można łatwo przystosować do nowego środowiska pracy szybszego
- 1. Konwencja nazewnictwa zmiennych Pythona
- 2. Konwencja nazewnictwa dla widgetów Qt
- 3. Konwencja nazewnictwa JavaScript dla obietnic?
- 4. Konwencja nazewnictwa dla par cers i seterów
- 5. Konwencja nazewnictwa dla języka UML
- 6. Konwencja nazewnictwa dla widoków Django?
- 7. Konwencja nazewnictwa dla metody serwisowej
- 8. Konwencja nazewnictwa Javy dla nazw zmiennych logicznych: writerEnabled vs writerIsEnabled
- 9. konwencja nazewnictwa dla asynchronicznego getter
- 10. Konwencja nazewnictwa zasobów XAML
- 11. Scala konwencja nazewnictwa cech
- 12. C++ - Konstruktor przeciążenia - prywatnych i publicznych
- 13. Konwencja nazewnictwa folderów dla wariantów gradle kompilacji
- 14. Konwencja nazewnictwa dla kontekstu aplikacji Spring XML
- 15. Konwencja nazewnictwa dla stanu/regionu/prowincji
- 16. Lokalizacja kontenera dla kluczy publicznych i prywatnych w systemie Windows?
- 17. jQuery konwencja wtyczki nazewnictwa (dla funkcji)
- 18. Wiosna Konwencja Boot dla zmiennych
- 19. Konwencja nazewnictwa pakietu testów jednostkowych
- 20. Ruby: Konwencja nazewnictwa atrybutów boolowskich i użycie
- 21. Czy istnieje wspólna konwencja nazewnictwa dla prywatnych funkcji wirtualnych w C++?
- 22. Konwencja nazewnictwa i ważne znaki dla klucza Redis
- 23. Jak działa konwencja nazewnictwa CakePHP?
- 24. Jak należy wdrażać prywatnych i publicznych członków w celu-c?
- 25. Gdzie zdefiniowana jest konwencja nazewnictwa właściwości JavaBean?
- 26. Dlaczego preferować właściwości dla zmiennych publicznych?
- 27. C# standardy kodowania dla prywatnych zmiennych składowych
- 28. Konwencja nazewnictwa C# dla zmiennych o tych samych danych, ale różnych typów
- 29. Jaka jest najlepsza konwencja nazewnictwa ViewModel?
- 30. Czy istnieje wspólna konwencja nazewnictwa pakietów lisp?
Przywykłem do tego stylu kodowania i uważam, że to bardzo wygodne i jasne: http://www.trinitycore.org/f/topic/6-trinitycore-developing-standards/ – LihO