[C/C++] 클래스 상속 및 순수 가상함수를 위한 virtual 키워드 C++에서 virtual 키워드가 어떤 목적으로 쓰이는지 알고계십니까? 크게 두가지로 나누자면 상속관계에서 다중 상속의 문제점을 해결하고, 하위 클래스에서 함수를 오버라이딩(overriding)하기 위해 사용됩니다. 아래에서 순서대로 설명하겠습니다. # virtual 1 : 클래스 상속과 오버라이딩(overriding)부모클래스를 상속받고 부모클래스에 정의된 함수를 오버라이딩하려할 때, 하위 클래스의 객체에서 재정의된 함수를 호출하기 위해서 vitual 키워드를 사용해야합니다. 그 이유는 virtual 키워드를 사용하지 않은 상황에서 컴파일시 프로그램에 부모클래스의 함수의 호출 주소가 저장되며(정적 바인딩의 개념) 실제 호출시에 저장된 부모클래스의 함수가 호출되기 때문입니다. 하지만 virtual 키워드.. C와 C++ 7년 전
[자료구조] 원형 큐의 기능 및 구현 안녕하세요. PEACE-입니다.자료구조 스터디 [여섯 번째] 글입니다. 배열을 이용한 원형 큐에 대해 알아보겠습니다. 선형 큐에 대한 이해가 부족하시면 아래 주소로 가서 선형 큐 포스팅을 참고해주시기 바랍니다.선형 큐 포스팅 http://mailmail.tistory.com/33 1. 원형 큐 원형 큐는 선형 큐와 마찬가지로 선입선출(First In First Out) 형태의 데이터 구조입니다. front와 rear 역시 사용하며 배열로 구현할 수 있습니다. 원형 큐는 선형 큐의 한계점을 해결하기 위해 구조화한 것인데, 배열의 마지막 인덱스에서 다음 인덱스로 넘어갈 때 '(index+1) % 배열의 사이즈'를 이용하여 OutOfBoundsException이 일어나지 않고 인덱스 0으로 순환되는 구조를 가.. 자료구조 8년 전
[자료구조] 선형 큐의 기능 및 구현 안녕하세요. PEACE- 입니다.자료구조 스터디 [다섯 번째] 글입니다. 배열을 이용한 선형큐에 대해 알아보겠습니다. 원형 큐 포스팅 주소 http://mailmail.tistory.com/41 1. 큐 선입선출(First In First Out)이라 불리는 데이터 구조입니다. 먼저 들어온 데이터가 먼저 나가며, 핵심 키로는 front 와 rear이 있습니다. 큐의 핵심 기능으로는 데이터를 넣어주는 enqueue, 데이터를 내보내는 dequeue가 있습니다. 2. enqueue 데이터를 넣어주는 기능을 수행합니다. 마지막 데이터의 위치가 변하므로 rear이 -1만큼 이동합니다. 3. dequeue 데이터를 내보내는 기능을 수행합니다. 맨 앞에 있는 데이터가 바뀌므로 front가 +1만큼 이동합니다. 4... 자료구조 8년 전
Visual Studio 2017 Community 간단 무료설치 마이크로소프트에서 제공하는 Visual Studio 2017 Community 설치하는 방법에 대해 간단하게 소개하겠습니다. 과정은 정말 간단합니다. 1) '마이크로소프트 비쥬얼 스튜디오' 홈페이지 접속2) 메뉴에서 '다운로드' 클릭 3) Visual Studio Community 무료 다운로드 클릭 4) 설치 도중 필요한 도구 선택하여 계속 설치 5) 마이크로소프트 로그인(로그인하면 기간제한 없이 사용가능합니다 - 권장) 6) Visual Studio 실행7) 끝 각종 설치 방법 8년 전
[자료구조] 스택(연결리스트 이용) - push, pop 안녕하세요. PEACE-입니다. 자료구조 스터디 [네 번째] 글입니다. 이번 포스팅은 연결리스트를 이용한 스택 구현입니다. 연결리스트의 개념을 반드시 알고있어야하며 모르신다면 아래 링크를 통해 학습하시길 권장합니다. 선형 연결리스트 - 삽입, 삭제(Last) : http://mailmail.tistory.com/24 1. 스택 스택이란 자료구조 중 하나입니다. 가장 최근에 들어간 데이터가 가장 먼저 나오며 흔히 후입선출(Last In First Out)이라고 말합니다. 이와 같은 호출이 일어나면 스택에 함수에 대한 정보가 push되고 함수의 끝이나 return을 만나면 함수가 종료되면서 pop을 통해 나중에 호출된 함수가 스택에서 빠져나옵니다. 2. 스택구현 연결리스트를 이용한 스택 구현은 스택의 크기가.. 자료구조 8년 전
[자료구조] 스택(배열 이용) - push, pop 안녕하세요. PEACE-입니다.자료구조 스터디 [세 번째] 글입니다. 1. 스택 스택이란 자료구조 중 하나입니다. 가장 최근에 들어간 데이터가 가장 먼저 나오며 흔히 후입선출(Last In First Out)이라고 말합니다. 이와 같은 데이터 구조를 통해 다양한 작업을 수행할 수 있습니다. 하나의 예를 들겠습니다. 재귀적 함수의 작업 수행 중에 함수의 호출이 일어나면 스택에 함수에 대한 정보가 push되고 함수의 끝이나 return을 만나면 함수가 종료되면서 pop을 통해 나중에 호출된 함수가 스택에서 빠져나옵니다. 2. 스택 구현 배열은 사이즈가 정해져있습니다. 현재 데이터의 위치를 알기 위해 top이라는 변수를 사용합니다. 스택 포인터라고도 합니다. 또한 push 메서드는 스택(배열)에 데이터를 넣는.. 자료구조 8년 전
[자료구조] 선형 연결리스트 - 삽입, 삭제(Last) 안녕하세요. PEACE- 입니다.자료구조 스터디 [두 번째] 글입니다. 1. 연결리스트 노드란 데이터와 다른 노드를 가리키는 공간을 가지고 있습니다. 연결리스트는 데이터 구조로써 노드간의 연결로 이뤄진 데이터 구조를 말합니다. HEAD는 첫 번째 데이터가 담긴 노드를 가리키며 연결리스트를 식별할 수 있고 연결리스트의 시작이라고 할 수 있습니다. 또한 HEAD를 통해 삽입, 삭제 기능 구현을 효율적으로 할 수 있습니다. 이러한 구조의 연결리스트를 이용해 원하는 위치에 데이터를 삽입하고 삭제하는 기능을 구현할 수 있습니다. 본 포스팅에서는 맨 앞에 데이터를 삽입하고 맨앞의 데이터를 삭제하는 기능에 대해 다루겠습니다. 2. 삽입 (Last) 맨 끝에 노드를 삽입하기 위한 방법은 아주 간단합니다. 하지만 두가지.. 자료구조 8년 전
[자료구조] 선형 연결리스트 - 삽입, 삭제(First) 안녕하세요. PEACE- 입니다.자료구조 스터디 [첫 번째] 글입니다. 1. 연결리스트 노드는 데이터와 다른 노드를 가리키는 공간을 가지고 있습니다. 연결리스트는 데이터 구조로써 노드간의 연결로 이뤄진 데이터 구조를 말합니다. HEAD는 첫 번째 데이터가 담긴 노드를 가리키며 연결리스트를 식별할 수 있고 연결리스트의 시작이라고 할 수 있습니다. 또한 HEAD를 통해 삽입, 삭제 기능 구현을 효율적으로 할 수 있습니다. 이러한 구조의 연결리스트를 이용해 원하는 위치에 데이터를 삽입하고 삭제하는 기능을 구현할 수 있습니다. 본 포스팅에서는 맨 앞에 데이터를 삽입하고 맨앞의 데이터를 삭제하는 기능에 대해 다루겠습니다. 2. 삽입 (First) 첫 번째 위치에 노드를 삽입하기 위한 방법은 아주 간단합니다. 하지.. 자료구조 8년 전