C++에서 함수 구현 파일에 using namespace std;
선언을 사용할 수 있습니까?함수 구현에서 네임 스페이스 사용
답변
"함수 구현 파일"은 .h 파일 또는 .cpp 파일을 의미합니까? (보통 .cpp 파일을 "구현"파일이라고 부르며 .h 파일은 "인터페이스"파일입니다.)
.cpp 파일을 의미하는 경우 물론입니다. 그 곳에서 보통 using namespace std
이 표시됩니다. 이 .cpp 파일의 모든 코드는 인증없이 std
에 액세스 할 수 있음을 의미합니다.
.h 파일을 의미하는 경우 은 일 수 있지만 그렇게해서는 안됩니다. .h 파일에 포함 시키면 .h 파일이 포함 된 .cpp 파일에 자동으로 적용됩니다.이 파일은 많은 파일 일 수 있습니다. 일반적으로 다른 모듈을 가져올 네임 스페이스로 말하기를 원하지 않습니다. 일반적인 .h 파일 대신 모든 .cpp 파일에 저장하는 것이 가장 좋습니다.
"기능 구현 파일"은 .C/.cpp 등의 파일을 의미하지만 피할 수는 있습니다. 대신, 예를 들어, , std::endl
등등에 대해서 <iostream>
이 필요하다면 using std::cout;
과 using std::endl;
에이 두 가지를 주입하면 이제는 cout
과 endl
으로 간단하게 쓸 수 있습니다.
나는이 같은 것을 의미 있으리라 믿고있어 :
// Foo.h
void SayHello();
...
// Foo.cpp
#include "Foo.h"
using namespace std;
void SayHello()
{
cout << "Hello, world!" << endl;
}
이 그 예 다음의 경우합니다. 그러나 큰 프로젝트에서 using namespace std;
을 사용하는 것은 나쁜 습관으로 간주됩니다.
나중에 구현 파일에서 "네임 스페이스 사용"을 사용하지 않으려합니다. 나중에 단일 번역 단위를 사용하려는 경우 이름 충돌이 발생합니다. – GameDeveloper
아마도 아래와 같이 기능 몸체에 using namespace std;
을 넣을 수도 있습니다. 이렇게하면 using namespace
문 범위가 제한됩니다.
void f() {
using namespace std;
cout << "Foo" << endl;
//..
};
void g() {
cout << "Bar" << endl; //ERROR: cout and endl are not declared in this scope.
};
이 당신이 가끔 확인하지 자체해야하지만, 어떤 (헤더 파일에 기록되는 함수의 본문에 네임 스페이스의 요소를 많이 사용하려는 경우 유용 할 수 있습니다 또는 거의 필요한 (예 : 템플릿).
- 1. 네임 스페이스 클래스 함수
- 2. 네임 스페이스 문제 사용
- 3. System.ComponentModel 네임 스페이스 사용
- 4. XSLT 함수 및 네임 스페이스
- 5. 네임 스페이스 및 사용 키워드
- 6. C++에서 네임 스페이스 사용
- 7. 헤더의 네임 스페이스 가시성 사용
- 8. Firefox에서 XPath 네임 스페이스 사용
- 9. rails3 네임 스페이스 질문 사용
- 10. 파이썬 클래스 네임 스페이스 및 초기화 함수
- 11. PHP 네임 스페이스 함수 모범 사례
- 12. YUI3, 모듈, 네임 스페이스, 호출 함수
- 13. 메모리의 함수/스텁/네임 스페이스 크기 결정
- 14. 네임 스페이스
- 15. 네임 스페이스 ++
- 16. 네임 스페이스
- 17. 네임 스페이스
- 18. Javascript 네임 스페이스 도움말
- 19. FTP 작업에 System.IO 네임 스페이스 사용
- 20. 네임 스페이스 선언 내에서 문 위치를 "사용"
- 21. PHP 5.2에서 네임 스페이스 사용 if 문
- 22. vb.net 만들기 및 사용 네임 스페이스
- 23. C++ 네임 스페이스 사용 및 명명 규칙
- 24. "네임 스페이스 사용"의 목적은 무엇입니까?
- 25. 파이썬 : 주요 네임 스페이스
- 26. C# .NET 네임 스페이스 이름이 네임 스페이스 오류에 없습니다. 로컬 네임 스페이스 지시문을 벗어난 경우에만 - 왜?
- 27. [DataContract]의 네임 스페이스
- 28. XJC 생성 네임 스페이스
- 29. 네임 스페이스 이름 지정
- 30. `My` 네임 스페이스 없애기
나는 정말로 귀하의 질문을 이해하는 것 같지 않습니다 ... 좀 더 자세한 정보를 제공해 주시겠습니까? – Stormenet