2011-11-22 13 views

Odpowiedz

46

Utwórz osobny plik o nazwie utility.hpp i umieścić wszystkie deklaracje funkcji w nim, najlepiej pod własnym obszarze nazw, które mogą być tylko utility, a następnie umieścić definicje w utility.cpp. Jeśli którakolwiek z funkcji narzędziowych jest szablonem funkcji, musisz umieścić definicję w samym nagłówku.

Unikaj definiowania narzędzia class i umieszczania w nim wszystkich funkcji narzędziowych jako członków static. To poważnie zły pomysł. Jedną z przyczyn złego jest to, że nie może skorzystać z wyszukiwania nazwy zależnej od argumentu (ADL).

Zamiast tego należy użyć przestrzeni nazw.

przykład,

//utility.hpp 

namespace utility 
{ 
    void function1(); 
    void function2(); 
    void function3(); 

    template<typename T> 
    void function4() 
    { 
     //function template definition should be here! 
    } 
} 

a następnie

//utility.cpp 

#include "utility.hpp" 

namespace utility 
{ 
    void function1() 
    { 
     //code 
    } 
    void function2() 
    { 
     //code 
    } 
    void function3() 
    { 
     //code 
    } 
} 
+0

Z wyjątkiem; nazwij klasy util.h \ cpp i util przestrzeni nazw; jego bardziej conveniant =) –

+0

Nie ma również potrzeby przedrostka 'utility_' w nazwie funkcji. To jest przestrzeń nazw dla –

+0

@ VJo: Oczywiście nie miałem na myśli, funkcja powinna być poprzedzona prefiksem 'utility_'. Ale wygląda na to, że może to zmylić czytelników (zwłaszcza początkujących). Więc zredagowałem mój post. – Nawaz

-1

utworzyć oddzielną klasę użytkową z Util.h (oświadczenia) i Util.cpp z realizacji. Możesz także zabrać go dalej, mając interfejs narzędziowy, ale zależy.

+5

* klasa użytkowa * to zły pomysł. – Nawaz

0

może chcesz sprawdzić google styleguide for c++ dla niektórych przydatnych TIPPS na ten temat ... jednak: istnieje wiele styleguides jak można robić rzeczy w wielu mniej lub bardziej użytecznych sposobów ... Najlepszym rozwiązaniem jest, aby wybrał jedną styleguide An następnie trzymaj się go dla całego projektu dla spójności ... (chyba że Ty/twoje zespoły poczujecie się bardzo nieswojo ...)

+3

Nie czytałem przewodnika po stylu w tym stylu, ale ogólnie nie jest to dobry przewodnik w stylu C++. –

+0

uważam, że jest to bardzo interesujące, ponieważ istnieje wyjaśnienie na temat plusów i minusów każdego tematu ... ale jestem otwarty na sugestie, jeśli możesz podać lepszy przewodnik na styl ;-) – xmoex

+2

Przewodnik po stylu gogli jest bardzo zły –

Powiązane problemy