2017-03-25 3 views
-3

내 파트 클래스에 요소라는 구조를 유지하는 내 클래스의 연산자를 만들어야합니다. 문제는 어떻게 그런 함수에서 x 클래스의 구조를 사용할 수 있습니까?연산자 = - 클래스 (SingleLinkedList)의 구조

template<typename Key, typename Info> 
    void Sequence<Key,Info>::operator=(const Sequence &x) 
    { 
     element *ptr=head; 
     while(ptr)//deallocating memory 
     { 
      head=ptr->next; 
      delete[] ptr; 
      ptr=head; 
     } 
     x.element *ptr2;// <- it doesn't work - how can I make a ptr for structure of class x here? 
// rest of code 
. 
. 
. 
// 



    } 
+1

귀하의 질문을 선언 할 것 문제가 정확히 무엇인지 설명하십시오. 그러나, 어쨌든 두 가지 큰 문제가 있습니다 : 1.)'operator ='는'* this'에 대한 참조를 반환해야합니다. 다른 코드, 특히 다양한 표준 컨테이너에 의해 종종 기대되기 때문입니다. 2.) 복사 할당'operator ='는 거의 항상 Copy & Swap 숙어를 사용하여 구현되어야합니다. 물론 처음부터이 모든 작업을 수행하지 않아도됩니다. 'std :: vector' 나'std :: map'과 같은 표준 컨테이너를 사용하십시오. –

+0

죄송합니다. 첫 번째 게시물입니다. 어쨌든 문제는 난 정말 x 클래스의 요소에 대한 포인터를 만들 수 없다는 것입니다. 나는 그것을하는 법을 정말로 모른다. 글쎄 그것은 내 연구를위한 실험실 프로젝트의 일부이고 상사는 우리가리스트 등을 위해 표준 라이브러리를 사용할 수 없다고 말했다. C – Orzelke

답변

0

은 개체가 아닙니다 (참조 대상).

head 회원에 액세스하려면 x.head으로 작성하십시오. 아무튼
이 멤버는 유형 element*을 가지고, 그래서 당신은 변수

element* ptr2 = x.head; 

(난 당신이 특히 구조에 대한 소개를 코스의 초기 부분을 검토하는 것이 좋습니다 것입니다.)