본문 바로가기

Pointer

연결 리스트(Linked List) 연결 리스트의 종류 : 연결 리스트에는 단일 연결 리스트(singly-linked list), 이중 연결 리스트(doubly-linked list), 원형 연결 리스트(circularly-linked list) 이렇게 세가지 기본 유형이 있다. 단일 연결 리스트 : 단일 연결 리스트는 각각 다음 원소를 가리키는 next 포인터 또는 레퍼런스(연결 링크)가 들어있는 데이터 원소들로 구성된다. 리스트의 마지막 원소에는 빈 링크 또는 널 링크가 들어간다. 아래와 같이 구현 될 수 있겠다 typedef struct IntElement{ struct IntElement *next; int data; } intElement; next 포인터를 구조체나 클래스의 맨 앞 쪽에 넣어두면 그 원소에 어떤 데이터가 들어가든.. 더보기
[C++] 대입 연산자 오버로딩 대입 연산자 A a = b; 위와 같은 문장이 있다. 여기서 b는 A클래스의 b객체이다. 이 문장은 다음과 같이 묵시적으로 변환이 일어난다. A a(b); 결국 a라는 이름으로 객체 생성할때 복사 생성자를 호출 하는 형태가 된다. 그럼 다음과 같은 문장은 어떤 일이 일어날까? A a; B b; a = b; 여기서 a = b; 이 문장은 a(b) 이런 형태로 묵시적 변환이 일어 나지 않는다. 위와 같은 대입연산을 썼지만, 객체 생성문장이 아니기 때문이다. 그럼 여기서 a = b;는 다음과 같이 해석 될 것이다. a.operator=(b); 복사생성에서 호출되는 대입연산과 오버로딩 되어 있는 operator 함수 호출에서의 대입연산을 혼동하지 말자 대입 연산자 오버로딩 #include using namesp.. 더보기
[C++] 상속 네번째, 상속된 객체와 포인터와의 관계 (객체 포인터) 객체 포인터 : 객체 포인터란 객체를 가리킬 수 있는 포인터를 의미한다. (객체의 주소 값을 저장할 수 있는 포인터) - 예를 들어 A 클래스의 포인터는 A 객체뿐만 아니라, A클래스를 상속하는 파생 클래스 객체의 주소 값도 저장이 가능하다 다음 상속 관계를 한번 살펴 보도록 하자. is-a관계에 의해서 ScholarStd 객체는 Student 객체이자 Person 객체도 동시에 된다. ("ScholarStd 는 Person 객체이다." 이런 말도 틀린말은 아니다) 그러면 "Student 객체는 ScholarStd 객체이다" 는 성립이 안된다. is-a 관계는 아래쪽으로 성립이 안된다. 우리가 프로그램상에서 서로의 객체를 생성했다고 해보자. 아래의 예제는 is-a 관계에서 위의 그림은 소스코드로 나타낸 .. 더보기