기본적으로 원하는 일부 데이터 유형에 대한 내부 구조를 만들려고합니다. 이러한 데이터 유형은 내 프로그램 (기본적으로 대용량 데이터베이스이지만)을 사용하도록 설정하는 번거 로움을 피하기 위해 대량의 정보를 보유 할 것이며 직렬화/비 직렬화 될 것입니다.텍스트 파일/XML 파일에서 C++ 클래스 만들기
하지만이 클래스/구조체는 텍스트 파일/ml 파일의 레이아웃에서 즉석에서 만들고 싶습니다. 예를 들어 :
container Music
field string name
field largenumber filesize
end container
이것은 매우 기본적인 예이다 : 상기 '컨테이너'데이터 유형 (클래스 또는 구조체) 것에서 '필드는'.. 문자열 인 상태 (STL과 문자열 변수를 나타낸다 , 큰 숫자는 부호없는 정수 또는 somesuch입니다. 예, 올바른 구문을 검사하는 C++ 파서 (컴파일러의 경우)와 같은 것을 원한다는 것을 알고 있습니다.
기본적으로 내 사용자는 자신의 데이터 유형 (필드 추가/필드 제거/자체 구조 만들기)을 수행 한 다음 내 프로그램에 영구히 보관하십시오.
이 작업을 수행하는 동안 serialize/unserialize를 수행해야합니다. 직렬화 된 데이터로 마지막으로 생성 된 클래스/구조체 텍스트 파일도 저장해야합니다. 그러면 데이터 정렬을 취소 할 때 데이터 유형을 다시 만들 수 있습니다.
누구든지이 작업을 수행하는 방법을 알고 있거나 내 디자인을 더 잘 구현할 것을 제안합니까?
P. 분명히이 정보는 컴파일 타임이 아닌 런타임에 생성되어야합니다.
더 명확 할 수 있습니까? 예를 들어 이러한 데이터를 수업으로 보는 데 문제가 있습니까? 즉, 가변 개수의 변수 유형 요소를 포함 할 수있는 클래스를 작성할 수 있습니까? 아니면 그것을 연재하면서 문제가 무엇입니까? 아니면 일반적으로 더 나은 해결책이 있는지 묻고 있습니까? – Shahbaz
귀하의 태평양 표준시입니다. 전혀 명백하지 않다. 런타임시 결과 C++ 코드를 어떻게 컴파일합니까? – Cameron
런타임에 C++ 프로그램에서 새 유형을 만들 수 없습니다. 사용자가 유형을 표현하거나 기존 언어를 재사용 할 수있는 언어를 작성하여 프로그램에 구현해야합니다. 이 언어는 C++과 유사 할 필요는 없습니다. 여기에는 두 가지 질문이 있습니다 : (1) 사용하는 언어의 종류와 (2) 구현 방법. 아니, 세 번이나해라. (3) 실제로 DBMS가 필요하지 않습니까? –