나는이 같은, 내가 데이터를 저장 링크 목록 및 다음 노드에 대한 포인터, Node<T>* next
있어 :연산자 ++가 링크 된 목록의 다음 노드 포인터로 진행하도록하려면 어떻게해야합니까?
template <class T>
struct Node
{
T data;
Node<T>* next;
};
것은 나는이에 후행 증가 연산자를 데려 가고 싶다는, 그것 때문에 내 노드의 이전 값을 반환하지만 참조는 증가시킵니다. 내가 할 경우이
Node<int>* someNode = someList.SomeNode();
Node<int>* tmp = someNode++;
tmp
원래 someNode
값이 될 것이나, 그래서 someNode
는 someNode->next
이 될 것입니다.
구조체에 연산자를 넣을 수 있습니까? 나는 그것을 시도하는 방법을 시도해 보았지만, 나는 사업자를 다루지 않았기 때문에 어떻게해야할지 모른다.
"구조체에 연산자를 넣을 수 있습니까?" 예. C++에서 구조체는 클래스처럼 멤버 함수를 가질 수 있음을 기억하십시오. – drescherjm
구조체는 클래스와 동일하지만 두 가지가 있습니다. 기본 액세스 수정자는 public이며 상속도 기본적으로 public입니다. 다른 것은 완전히 똑같습니다. –
고마워요.하지만 여전히 someNode ++을하는 데 문제가 있습니다. Michael Krelin 회원이 저에게 말했습니다. 그 이유는 someNode가 포인터입니다. Node * no 노드 , someNode ++ MVC는 캐스팅 할 수 없다고 말합니다. –
freesoul