저는 학습 언어 C++ (1 년 전)를 시작했습니다. 왜냐하면 그것은 대부분 언어가 아닌 언어이기 때문에 거의 모든 것이 가능하기 때문입니다. 우리가 객체 (클래스) 안에 몇 가지 코드를 작성하는 예를 들어 우리는 어떻게 든 그것의 이름을 알아낼 필요 : 하지만 한 가지 그렇게하지C++에서 개체 또는 변수의 식별자 및 식별자를 확인 하시겠습니까?
class Test
{
public: const char* getMyIdentiferName()
{
// what now??
}
};
물론 가장 좋은 방법은 '이'를 사용하는 것입니다 keywod하지만 그건 '이'캔트 리턴 이름 때문에 도움이되지 않을까요?
Test thatsMyName;
const char* = thtsMyName.getMyIdentiferName(); //return string "thatsMyName" how?
어떻게하면 일반 기능이나 심지어 템플릿에서 'thatsMyName'문자열을 얻을 수 있습니까 ??
또 다른 예 :
어떻게 우리가 어떤 클래스의 유형 ID를받을 수 있나요 (너무이 답변하시기 바랍니다)? 많이
class MyType
{
public: type_info getType()
{
return typeid(this); //that wont work of course :)
{
};
당신의 비슷한 작업을 실현하려 방법에 대한 몇 가지 아이디어가있는 경우이 재미 보인다하지만 ...
감사합니다.
는 편집 : OK, everybodey는 개체의 이름을 가져 불가능 말, 나는 이름을 얻는 방법을 발견 :
class Test
{
public: string getObjectName()
{
string arg = typeid(*this).name();
arg.erase(arg.begin(), arg.begin() + 5);
arg.erase(0,1);
return arg;
}
};
int main()
{
Test thisIsMyName;
cout << thisIsMyName.getObjectName() << endl;
cin.ignore();
return 0;
}
편집 : Fiktik에 큰 감사가 발견 내 두 번째 예제 응답 방법 oon 개체의 type_info 얻는 방법!
'반환 유형 ID (이)'작동합니다. 왜 효과가 없을 것이라고 말하는가? 당신은 또한'return typeid (* this);를 고려해야한다. –
감사합니다. 그리고 그 함수의 리턴 타입은 무엇이 될까요? – codekiddy
대다수의 개체에는 이름이 없습니다. –