2009-02-26 23 views

Odpowiedz

10

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

+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

0

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.

2

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.

5

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.

+0

"this" jest wskaźnikiem w C++. –

+0

W prawo. Poprawi się! –

2

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.

0

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

Powiązane problemy