안녕하세요
현재 제가 진행하고 있는 내용이 있는데
검색을 통해 찾아 봤습니다만, 너무 오래전 글들이라서요.
공유 메모리에 클래스 인스턴스를 넣어 여러 곳에서 사용할 수 있게끔 만들려고 하는데
공유 메모리에 전혀 클래스를 넣어 사용할 순 없는건가요??
그냥 malloc 만 사용하더라도. 사용이 가능해 보입니다. 뭔가 문제가 있다면. 알려주세요.
http://kldp.org/node/28732http://kldp.org/node/111361
#include <stdio.h> #include <stdlib.h> #include <memory.h> class CParent { public: int a; int c; CParent() { printf("부모 생성자\n"); } ~CParent() { printf("부모 소멸자\n"); } void fn() { printf("부모 --- %d %d ---\n", a, c); } }; class CTest : public CParent { public: int a; int b; CTest() { printf("생성자\n"); } ~CTest() { printf("소멸자\n"); } void fn() { printf("--- %d ---\n", a+b); } }; int main(int argc, char* argv[]) { CTest t; t.a = 11; t.b = 22; t.c = 33; int size = sizeof(CTest); char* p = (char*) malloc (size); memcpy(p, &t, size); printf("크기 %d\n", size); ((CTest*)p)->fn(); ((CParent*)p)->fn(); printf("--------------------\n"); return 0; } //출력 결과 //부모 생성자 //생성자 //크기 16 //--- 33 --- //부모 --- -858993460 33 --- //-------------------- //소멸자 //부모 소멸자
---------------------------------------------------------------------------- 젊음'은 모든것을 가능하게 만든다.
매일 1억명이 사용하는 프로그램을 함께 만들어보고 싶습니다. 정규 근로 시간을 지키는. 야근 없는 회사와 거래합니다.
각 분야별. 좋은 책'이나 사이트' 블로그' 링크 소개 받습니다. shintx@naver.com
실행 결과를 보면 부모의 fn 함수 실행에 문제가 있는 것 같아 보이네요..
가상함수 테이블 때문에 그냥은 안될거 같고 순수 데이터만 공유하면 될거 같습니다. 복사 생성자, 대입연산자를 잘 만들어서 쓰면 될거 같네요.
------------------------------------------------------------------------------- It's better to appear stupid and ask question than to be silent and remain stupid.
텍스트 포맷에 대한 자세한 정보
<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]
확인해 봤습니다.
그냥 malloc 만 사용하더라도. 사용이 가능해 보입니다.
뭔가 문제가 있다면. 알려주세요.
http://kldp.org/node/28732
http://kldp.org/node/111361
----------------------------------------------------------------------------
젊음'은 모든것을 가능하게 만든다.
매일 1억명이 사용하는 프로그램을 함께 만들어보고 싶습니다.
정규 근로 시간을 지키는. 야근 없는 회사와 거래합니다.
각 분야별. 좋은 책'이나 사이트' 블로그' 링크 소개 받습니다. shintx@naver.com
실행 결과를 보면 부모의 fn 함수 실행에 문제가
실행 결과를 보면 부모의 fn 함수 실행에 문제가 있는 것 같아 보이네요..
가상함수 테이블 때문에 그냥은 안될거 같고 순수
가상함수 테이블 때문에 그냥은 안될거 같고 순수 데이터만 공유하면 될거 같습니다.
복사 생성자, 대입연산자를 잘 만들어서 쓰면 될거 같네요.
-------------------------------------------------------------------------------
It's better to appear stupid and ask question than to be silent and remain stupid.
댓글 달기