Rozważmy parę dwóch plików źródłowych: plik deklaracji interfejsu ( *.h
lub *.hpp
) i plik jego implementacji ( *.cpp
).
Niech *.h
plik będzie podobny do następującego:
namespace MyNamespace {
class MyClass {
public:
int foo();
};
}
Widziałem dwie różne praktyki dotyczące używania przestrzeni nazw w plikach źródłowych:
*.cpp
pokazując praktykę nr 1:
#include "MyClass.h"
using namespace MyNamespace;
int MyClass::foo() { ... }
*.cpp
pokazując praktykę nr 2:
#include "MyClass.h"
namespace MyNamespace {
int MyClass::foo() { ... }
}
Moje pytanie: czy są jakieś różnice między tymi dwiema praktykami i czy jedna jest uważana za lepszą od drugiej?
int MyNamespace::MyClass::foo() ...
.