반응형
앞에서 namespace의 사용법을 설명했습니다.
복습하자면 사용법은
<iostream>
namespace IamA
{
void printOut() { std::cout << "출력!" << std::endl; }
}
void main() {
IamA::printOut();
}
이렇게 됩니다.
하지만 namespace속의 printOut()이라는 함수를 매번 사용하는 일이 발생한다면
IamA::printOut(); 이라는 선언은 여간 귀찮은 일이 아닐 수 없을 것입니다.
이런 귀찮은 것들을 using이라는 기능을 선언해 주면 해결이 됩니다.
<iostream>
namespace IamA
{
void printOut() { std::cout << "출력!" << std::endl; }
}
void main() {
using IamA::printOut;
printOut();
}
위 예제처럼 using만 선언해주면 함수명만으로도 실행이 잘 됩니다.
하지만 위 예제는 main()이라는 함수 안의 지역변수로 선언한 것이며
해당 함수가 끝나면 using의 효과도 끝날 것입니다.
main()밖인 전연변수로 선언한다면 모든 곳에서 간단하게 사용이 가능하게 됩니다.
하지만 전에 예제처럼 동일한 함수로 선언된 경우
#include<iostream>
namespace IamA{ void printOut();}
namespace IamB{ void printOut();}
void main() {
IamA::printOut();
IamB::printOut();
}
void IamA::printOut() { std::cout << "출력!" << std::endl; }
void IamB::printOut() { std::cout << "출력!" << std::endl; }
이러한 상황에서 outPrint()함수를 using을 이용해 간소화 시켜 버리면
namespace를 사용한 의미를 잃어버리는 것이니 남용하지 말고 상황에 맞게
사용하는것이 바람직 할 것입니다.
반응형
'프로그래밍 > C++' 카테고리의 다른 글
C와 C++의 차이, 절차지향과 객체지향의 차이점!!(객체지향 사용 이유) (0) | 2019.01.17 |
---|---|
C++의 참조자 (0) | 2018.06.24 |
C++의 자료형 bool (0) | 2018.06.24 |
C++의 namespace의 사용법과 이유(1) (0) | 2018.06.24 |
C++의 std, cout, cin, endl 사용법 (0) | 2018.06.24 |
댓글