C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[38097] 난감한 문제 정말 C++은 싫어 싫어 싫어 저리가 정말 저리가 저리가 가가 가가 가~~~~~~~~~
김상면 [windyboy] 1106 읽음    2004-11-19 02:25
#include "stdafx.h"
#include <iostream.h>
#include <malloc.h>

template <class Type>
class CList
{    typedef struct tagNode
    {    struct tagNode* m_pNext;
        Type* m_pData;
    } Node;

    Node* m_pHead;
public:
    CList()
    {    m_pHead = NULL;
    }
    ~CList()
    {    Node* pre;

        while(m_pHead)
        {    pre = m_pHead;
            m_pHead = m_pHead->m_pNext;
            free(pre);
        }
    }
    bool Insert(Type& tp);
    bool Delete(Type& tp);
    void Print();
};

template <class Type>
bool CList<Type>::Insert(Type& tp)
{    Node* node = (Node*)malloc(sizeof(Node));

    if (node)
    {    node->m_pNext = m_pHead;
        node->m_pData = &tp;
        m_pHead = node;
        return true;
    }
    return false;
}

template <class Type>
bool CList<Type>::Delete(Type& tp)
{    Node* node = m_pHead;
    Node* pre;

    while(node)
    {    if (*node->m_pData == tp)
        {    if (node == m_pHead)
                m_pHead = node->m_pNext;
            else
                pre->m_pNext = node->m_pNext;
            free(node);
            return true;
        }
        pre = node;
        node = node->m_pNext;
    }

    return false;
}

template <class Type>
void CList<Type>::Print()
{    Node* node = m_pHead;

    while(node)
    {    cout << *node->m_pData << endl; //요부분요
        node = node->m_pNext;
    }
}

int main(int argc, char* argv[])
{    CList<int> list;
    int d1(1),d2(2),d3(3),d4(4);

    list.Insert(d1);
    list.Insert(d2);
    list.Insert(d3);
    list.Print();
    cout << "==============================" << endl;

    list.Delete(d1);
    list.Delete(d2);
    list.Delete(d3);
    list.Print();

    return 0;
}

위와 같이 template을 이용해서 프로그램을 만들었습니다. 근대 멤버함수 Print에서 m_pData가 기본 자료형일때는 잘 동작하는데 객체(클래스)일때는 처리가 곤란합니다. 객체는 '객체.멤버' 형식으로 읽어 와야 하쟎아요 근대 기본 자료형은 다이렉트로 바로 읽어 오니 서로간에 마찰이 생깁니다. 이경우 고수님들은 어케 처리하나요?

그라고 이건 왜또 작동을 안하나요
                list.Insert(1);
    list.Insert(2);
    list.Insert(3);
인수로 변수가 아니라 상수를 대입하니 에러가 납니다. 정말 환장합니다. C은 너져분해도 이런 문제는 없는데..... 고수님들이 이번에 안가르쳐주면 정말로 C++버려뿔까 보당 말만 객체 지향이지 배워서 써먹으려면 꼭 저런씩으로 사람 속을 팍 팍 뒤집어 버리네..... 교수들은 뭐하나 몰라 돈만 받아 먹고 저런것도 안가르쳐주고..... 아이참 신경질나..... 이건 베이직보다 더하다 더해.....

그럼

+ -

관련 글 리스트
38097 난감한 문제 정말 C++은 싫어 싫어 싫어 저리가 정말 저리가 저리가 가가 가가 가~~~~~~~~~ 김상면 1106 2004/11/19
38101     Re:난감한 문제 정말 C++은 싫어 싫어 싫어 저리가 정말 저리가 저리가 가가 가가 가~~~~~~~~~ 나엑스 993 2004/11/19
38100     Re:난감한 문제 정말 C++은 싫어 싫어 싫어 저리가 정말 저리가 저리가 가가 가가 가~~~~~~~~~ 나엑스 834 2004/11/19
38099     Re:난감한 문제 정말 C++은 싫어 싫어 싫어 저리가 정말 저리가 저리가 가가 가가 가~~~~~~~~~ 박성근 943 2004/11/19
38105         Re:Re:난감한 문제 정말 C++은 싫어 싫어 싫어 저리가 정말 저리가 저리가 가가 가가 가~~~~~~~~~ 김상면 900 2004/11/19
38125             Re:Re:Re:난감한 문제 정말 C++은 싫어 싫어 싫어 저리가 정말 저리가 저리가 가가 가가 가~~~~~~~~~ Builder MySelf 940 2004/11/22
38098     Re:난감한 문제 정말 C++은 싫어 싫어 싫어 저리가 정말 저리가 저리가 가가 가가 가~~~~~~~~~ 김태선 970 2004/11/19
38103         Re:Re:난감한 문제 정말 C++은 싫어 싫어 싫어 저리가 정말 저리가 저리가 가가 가가 가~~~~~~~~~ 김상면 813 2004/11/19
38104             Re:Re:Re:난감한 문제 정말 C++은 싫어 싫어 싫어 저리가 정말 저리가 저리가 가가 가가 가~~~~~~~~~ 강재호.만해 873 2004/11/19
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.