정상인가요?정적 클래스 함수 [C++]에서 'using'선언을 사용할 수 있습니까?
class SomeClass {
public:
static void f();
};
using SomeClass::f;
편집 : 기능을 잊어 버렸습니다. 죄송합니다.
정상인가요?정적 클래스 함수 [C++]에서 'using'선언을 사용할 수 있습니까?
class SomeClass {
public:
static void f();
};
using SomeClass::f;
편집 : 기능을 잊어 버렸습니다. 죄송합니다.
아니요, 아닙니다. using 키워드는 하나 또는 모든 멤버를 네임 스페이스에서 전역 네임 스페이스로 가져 오는 데 사용되므로 멤버를 사용할 때마다 네임 스페이스의 이름을 지정하지 않고 액세스 할 수 있습니다.
제공된 using 문에서 네임 스페이스의 이름은 제공되지 않습니다. SomeClass에 using SomeClass::f;
과 같은 구문도 제공 했더라도 SomeClass는 네임 스페이스가 아니기 때문에 작동하지 않습니다.
희망이 도움이됩니다.
전역 이름뿐만 아니라 모든 이름 공간에 이름을 가져올 수 있습니다. 멤버 함수에서는'using '을 사용할 수 있지만 파생 클래스에서는 to 만 사용할 수 있습니다. – avakar
보통 using x;
은 기본 클래스의 메소드 숨기기를 피하기 위해 기본 클래스의 메소드 이름을 범위 안으로 가져 오는 클래스 내부에서 사용되는 것 같습니다.
네임 스페이스에만 적용되는 using namespace name;
을 생각할 수도 있습니다.
당신은 간단한 인라인 기능이 더 나을 수 있습니다
void f(){ SomeClass::f(); }
인라인 트릭을 사용하겠습니다. –
일이 말도 안되는 downvote을 방해 할 수 있습니다. – avakar