클래스를 동적생성 및 사용하는 방법

shint의 이미지

.
.
.
.
예를 들어서.
class.txt
class CTest
{
int m_nTest;
void Fn_Test();
}
이와같이 class.txt 라는 파일이 있을경우
이 파일을 읽어서 C나 C++에서 클래스처럼를 사용하려고 합니다.

파서는 만들겠는데 클래스자체를 동적으로 만드는 방법은 모르겠습니다.
어떻게 해야할지 알고 싶습니다.

익명 사용자의 이미지

이걸 보면 원하는 것을 할 수 있을 것입니다.

http://wiki.kldp.org/wiki.php/DocbookSgml/C%2B%2B-dlopen

익명 사용자의 이미지

제목만 보고 답글 달았는데 본문을 보니 이 얘기가 아닌듯도 하군요. ^^

auditory의 이미지


진짜 동적생성이네요..

컴파일러를 불러서 소스를 라이브러리로 만들고,

이 라이브러리를 "동적으로" 불러오면 되려나요..

그런데 이런게 과연 필요할지가 의문이네요..

익명입니다의 이미지

핵심 기능들은 컴포넌트화 한 다음, 해당 기능을 사용하는 스크립트로 짜고 메인 프로그램은 스크립트에 대한 파서를 구현하는게 더 현실적일 듯 하네요.

imyejin의 이미지

일단 Lisp 계열 언어들이 이런 면으로야 워낙 잘 알려져 있습니다.
문법이 단순해서 텍스트로 된 코드를 쉽게 불러들일 수 있죠.
언어 자체에서 텍스트를 데이타 구조로, 그 데이타 구조를 프로그램 코드로
동적으로 변환하는 것을 기본적으로 지원합니다.

Erlang의 경우도 특히 이런 면을 염두해 두고 만들어진 언어입니다.
실행 중인 상태에서 프로그램을 멈추지 않고 코드를 재정의해서 불러들이는 것도 가능하죠.

Java의 경우도 class 자체를 동적으로 불러들이거나 생성할 수 있습니다.
한번 불러들인 클래스의 정의를 바꿔치기 할 수 있는지는 모르겠지만요.

C/C++의 경우는 보통의 구현이라면 클래스 정보를 실행 전에 알아야 하기 때문에 어렵죠.

그러한 기능을 원하신다면 C++보다는 Common Lisp Object System (CLOS)를 쓰시는 게 어떨까요?

임예진 팬클럽 ♡예진아씨♡ http://cafe.daum.net/imyejin

[예진아씨 피카사 웹앨범] 임예진 팬클럽 ♡예진아씨♡ http://cafe.daum.net/imyejin

shint의 이미지

1. 데이터형별로 텍스트 로딩
2. 데이터형별로 파싱
3. 데이터형은 각 카테고리별로 관리

한마디로.... 클래스는 아니고... 데이터만 정리해서 사용하는 방식입니다.
더 좋은 방법 아시는분 댓글' ㅇ_ㅇ'' 주세요.
답변해주신 병철씨' 땡큐 ㅋ_ㅋ''''

매일 1억명이 사용하는 프로그램을 함께 만들어보고 싶습니다.

----------------------------------------------------------------------------
젊음'은 모든것을 가능하게 만든다.

매일 1억명이 사용하는 프로그램을 함께 만들어보고 싶습니다.
정규 근로 시간을 지키는. 야근 없는 회사와 거래합니다.

각 분야별. 좋은 책'이나 사이트' 블로그' 링크 소개 받습니다. shintx@naver.com

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.