전역 네임스페이스, 시스템함수와 동일한 클래스 메서드 이름 사용 방법
C++ class method명이 시스템 함수와 같은 경우에는 사용할 시스템 함수명 앞에 :: 을 붙여주자.
이는 전역 네임스페이스 란 의미인데,
식별자가 명시적 네임스페이스에서 선언되지 않은 경우 암시적 전역 네임스페이스에 포함되기 때문이다.
이렇게해서 되면 동일한 이름과 해당 식별자(동일한 method명과 시스템 함수)가 구분을 할 수 있다.
예제
void Handler::write(string _data) { // method - write()
::write(this->dev_fd, _cmd_id.c_str(), _data.length()); // system function - write()
return ;
}
void Handler::execute(void) {
string str_data = "hello world";
// 1. 동일 네임스페이스 내 write method 호출
this->write(str_data);
// 2. 전역 네임스페이스 내 write function 호출
::write(this->dev_fd, _cmd_id.c_str(), _data.length());
return ;
}
끝.
'IT > programming' 카테고리의 다른 글
[C/C++] C언어 MAC 주소 읽기 구현, get mac address (0) | 2022.01.16 |
---|---|
[C/C++] select 를 활용한 non-block I/O, FD_SET, FD_ISSET (0) | 2022.01.14 |
[C/C++] C++ curl handler class 예제, C언어 curl 구현 (10) | 2022.01.13 |
[C/C++] C언어 Big-endian <-> Little-endian 상호 변환 (0) | 2022.01.13 |
[C/C++] sprintf indicator 및 format 관련 (0) | 2022.01.13 |
댓글