class foo
{
public:
void say_type_name()
{
std::cout << typeid(this).name() << std::endl;
}
};
int main()
{
foo f;;
f.say_type_name();
}
++ g에 추가 문자를 반환합니다. 이 P3foo 대신 foo는의 인쇄 왜 내가지고 있지 않다. 내가유형 ID는() 코드를 인쇄 g 내 우분투 시스템에 <em>P3foo</em> ++보다도
std::cout << typeid(*this).name() << std::endl;
같은 코드를 변경하는 경우는 3foo를 인쇄합니다.
의견이 있으십니까?
WOW! 흥미 롭 군. 두 가지 질문 .. 1 - C++ filt는 gcc 배포판의 일부 또는 리눅스의 일부입니까? 2 - 메소드 나 클래스의 맹 글링 된 이름을 얻는 방법이 있습니까? 방법으로는 http://www.gnu.org/software/binutils/ –
C++ filt을은 바이너리 유틸리티의 일부 (LD (링커)와 readelf 같은 다른 작은 유틸도에서 온 패키지)입니다 C++에서 그렇게해라. 하지만 GCC에서는 ABI가 노출시키는 기능이 있습니다. cxxabi.h에 있으며 __cxa_demangle이 호출되었습니다. 맹 글링 된 이름을 그냥 전달하십시오. –
없다 : –