2014-03-19 2 views
0

나는 int 변수로 작동하는 완전히 작동하는 LinkedList를 가지고있다. 개체와 함께 작동하도록 변경하려고하지만 포인터에 관해서는 막혔습니다. 어떤 충고?LinkedList를 변경하여 Int 대신 Objects를 허용 하시겠습니까?

이 노드 구조체입니다 :

typedef struct Node 
{ 
    int data; 
    Node* next; 
}* nodePointer; 

그리고 이것은 ADDNODE 함수이다 : 그것은 몇 가지 간단한 변화의 문제

void LinkedList::addNode(int dataToAdd) 
{ 
    nodePointer nodeToAdd = new Node; 
    nodeToAdd->next = NULL; 
    nodeToAdd->data = dataToAdd; 

    if(head != NULL) 
    { 
    current = head; 

    while(current->next != NULL) 
    { 
    current = current->next; 
    } 

    current->next = nodeToAdd; 
    }//end if 

    else 
    { 
    head = nodeToAdd; 
    }//end else 
}//end addNode 

인가?

+1

정확히 어떤 문제가 있습니까? 'int data'와'int dataToAdd'를 저장하고자하는 객체 유형으로 변경하는 것이 첫 번째 단계 일 것입니다 (템플릿 조사를 시작할 수도 있습니다). – Yuushi

+2

동의합니다. 새로운 선언은'someObjectType data'와'someObjectType dataToAdd'처럼 보일 것입니다. –

답변

1

사용하려는 개체의 유형에 따라 다릅니다.

= 기본 동작이 적합한 모든 클래스의 경우 int을 개체 유형으로 바꾸고 지금 가지고있는 것과 동일한 코드를 사용할 수 있습니다.

더 복잡한 개체 (예 : 동적으로 할당 된 멤버에 대한 포인터를 보유하는 개체)의 경우이 클래스에 적절한 = 연산자를 정의하거나 개체를 제대로 복사 할 수 있도록 복사 함수를 사용해야합니다

관련 문제