[질문] 구조체의 멤버변수를 알수있는 방법이 있나요??
글쓴이: neogea / 작성시간: 금, 2004/10/08 - 11:10오전
구조체를 선언했을때 해당 구조체의 멤버를 알아내는 방법이 있을까요?
struct AA{ int a; char b[10]; int c; }; struct AA aa;
이와 같이 선언을 하였을 때 프로그램상에서 AA 또는 aa의 멤버변수는 어떤
것들이 있고 그것들의 타입은 무엇이다. 라고 알아낼수 있는지요. 혹시 알수는
없더라도 그 값을 출력이 가능한지 알고 싶습니다.
제가 만들고자 하는건 어떤 구조체의 타입과 변수를 주면 해당 맴버들의
값을 자동으로 출력하는 함수를 하나 만들려고 하거든요. 물론 변수만 넘겨서
출력이 가능하면 더 좋구요...^^;;
Forums:
이런 식의 struct 선언이 가능하다면 C++을 사용하시는 것 같은데.
이런 식의 struct 선언이 가능하다면 C++을 사용하시는 것 같은데.. 멤버 변수를 추가하시면 안되나요?
말씀하신 기능은C++ 에 RTTI (Runtime type inf
말씀하신 기능은
C++ 에 RTTI (Runtime type information ?) 이란 것과
비슷한거 같군요
런타임시에 어떤 개체의 타입을 체크할수 있게 해줍니다.
도움이 되셨는지 ;;
[질문] 답변 감사 드립니다. 제가 원하는것과는 좀 다른것 같네
멤버 변수를 추가하는 개념 보다는 여러게의 서로다를 구조체를 사용하는
와중에 하나의 함수로 서로다른 구조체들의 값을 찍을수 있는 함수를 만들
려고 하거든요. 그래서 하나의 구조체에 멤버변수를 추가하는건 제 의도와는
좀 다른것 같습니다.
답변 감사 드립니다. ^^
----------------------------------------------------------------
RTTI라는거 잘 몰라서 찾아봤는데요 실시간으로(런타임시)에 개체의 타입
(클레스를 말하는것 같습니다)을 확인하는 것으로 구조체의 멤버 변수를
체크하는 방법은 잘 안나와 있네요...^^;; RTTI에 대해서 좀더 봐야 할것
같지만 혹시라도 객체가 아닌 구조체의 멤버를 알아내는것이 있으면 ^^...
그래도 가능성이 있는 답변에 감사 드립니다.
구조체를 선언했을때 해당 구조체의 멤버를 알아내는 방법이 있?
따로 구조체에 그런 역할을 하는 멤버함수나 아니면 멤버에대한 정보를 인위적(?)으로 넣지 않는이상 언어의 차원에서는 그런 기능은 지원하지 않습니다.
그런쪽에 라이브러리에 관심있으시다면 Loki라이브러리의 TypeList나 Boost라이브러러의 tuple같은걸 알아보십시요.
만약에 같은 함수이름으로 인터페이스 할려고 하는 목적이라면 함수의 겹지정으로 처리 하면 되고요
그리고 RTTI는 그런 목적으로 사용하는것이 아니고 수직적인 클래스 상속관계에서의 포인터 혹은 참조 변수의 실행시간 타입정보혹은 그냥 일반적인 타입에 대한 정보를 알아내는 메커니즘 입니다.
--
cdecl
--
cdecl
댓글 달기