c++ 질문입니다~

조회수 750회

이미지

이미지 이미지

1번 iterator class를 Node list안에 넣으려고 합니다. 하지만 Iterator 클래스의 껍데기만 없애고(ITERATOR의 private와 public은 그대로 Nodelist class 안에 넣습니다) iterator를 Node*로만 사용하려 합니다. 연산자 오버로딩을 사용해서 예를들어 Node* a; ~중간에 a에 인수들을 넣고, 구현부에 a;로 사용할수 있나요?? 추가 설명입니다~ 만약 iterator 클래스를 사용하면 Iterator a; 이렇게 정의하고 operator *() overloading 에의해 cout<<a<<endl을 사용하면 a의 elem이 나오는데 Iterator 를 사용하지 않고 Node* a; 로 사용하고 싶습니다~

  • 질문이 정확하게 잘 이해가 안되는군요... "연산자 오버로딩을 사용해서 예를들어 Node* a; ~중간에 a에 인수들을 넣고, 구현부에 *a;로 사용할수 있나요??" 이 부분에 대해서 좀 더 자세히 설명해주실 수 있을까요? 알 수 없는 사용자 2019.1.11 22:31
  • 흠 만약 iterator 클래스를 사용하면 Iterator a; 이렇게 정의하고 operator *() overloading 에의해 cout< 강명진 2019.1.12 00:46
  • #c++ 강명진 2019.1.12 00:47
  • #c++ 강명진 2019.1.12 00:47
  • 뒤에 추가 설명을 했습니다~ 강명진 2019.1.12 00:48

1 답변

  • 좋아요

    1

    싫어요
    채택 취소하기

    NodeList, Iterator class들은 각자 역할이 다릅니다. 현재 이 class들은 꽤나 정석에 가깝게 설계되어 있는데 Iterator class를 없애야 하는 특별한 이유가 있으신가요?

    Iterator를 Node* 형태로 대체하고 싶으시다면, Iterator의 구현을 NodeList class 안으로 넣는게 아니라 struct Node에 대해서 operator overloading을 구현하시면 됩니다.

    • (•́ ✖ •̀)
      알 수 없는 사용자
    • 알려주셔서 감사합니다~ 강명진 2019.1.12 15:37

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)