본문 바로가기
반응형

C++20

Function Pointer (함수 포인터) C와 C++의 Function Pointer 제도에 대해서 무엇인지 알아보겠다. Function Pointer란, 함수 포인터 즉, 변수가 아닌 함수를 가리키는 포인터를 뜻한다. Function Pointer를 쓰는 이유로는 콜백 함수(Callback function = 어떤 이벤트에 의해 호출되어지는 함수, 다른 함수에 매개변수로 넘겨진 함수)를 구현할때 사용된다. 간단한 덧셈, 뺄셈, 곱셈, 나눗셈을 하고 싶을 때, 함수를 필요에 따라 그때 그때 불러오는 프로그램을 짜보며 자세히 보겠다. #include void add(int x, int y) { printf("%d + %d = %d\n", x, y, x+y); } void subtract(int x, int y) { printf("%d - %d =.. 2023. 3. 28.
C++ LinkedList 만들기 (version 3 - Iterator 구현 및 사용) 이전에 만든 LinkedList에 Iterator를 추가하여 traverse하는 용도로 써보겠다. 먼저, C++의 STL에 대해 짚고 넘어가겠다. STL이란 표준 템플릿 라이브러리라고 하며, ISO C++위원회에서 specification을 정한다. ISO에서 특정 클래스의 명세를 결정해 발표하면 C++ 컴파일러를 만드는 vendor들이 알아서 template들을 구현한다. 이것은 알고리즘, 컨테이너, 함수자, 반복자의 네가지 구성 요소를 제공한다. 프로그래머가 자료구조와 알고리즘의 정확한 내부 구조를 모르더라도 사용할 수 있게 구현해놓았다. 간단한 STL 사용 예제를 보겠다. #include using namespace std; #include #include #include template ostre.. 2023. 3. 27.
C++ LinkedList 만들기 (version 2 - LinkedList Template화 하기) C++의 template 제도와 사용에 대해서 알아보고 또 이전 버전의 LinkedList에 직접 적용시켜 구현해보도록 하겠다. C++의 template은 Java의 Generic과 같은 것으로 이해하면 된다. 우리가 어떤 Collection 객체를 갖다 쓰던지 실제 사용에 있어서 한 가지 변수 타입에 국한되지 않게 쓸 수 있어야 한다. 이전 버전의 LinkedList는 자료형의 리턴 타입이 전부 int형이었다. 하지만 Library에서 갖다쓰는 자료 구조들은 int 뿐만이 아닌 String, bool ... 혹은 객체가 됐든 어떠한 데이터도 담을 수 있다. 그래서 저번 버전의 LinkedList를 template화 시켜 다양한 자료형을 다룰 수 있게 해보겠다. int만 담을 수 있는 이전 버전의 Lin.. 2023. 3. 25.
C++ LinkedList 만들기 (version 1) C에 이어 C++로 LinkedList를 구현해 보도록 하겠다. LinkedList의 거의 모든 메서드의 동작 메커니즘은 아래 글에서 소개가 되어있다. https://suldenlion.tistory.com/88 약간의 추가된 요소나 메서드들, 그리고 C++로 파일을 나눠서 작성한 코드 방식 등을 포스팅 해보겠다. 바로 메인 함수 코드를 보면서 어떤 함수들을 사용했는지 보겠다. #include using namespace std; #include "LinkedList.h" void main() { LinkedList list1; LinkedList *list2 = new LinkedList(); list1.addFirst(10); list1.addFirst(20); list1.add(50); list1... 2023. 3. 24.
C++ Stack 만들기 (version.4 - Operator overloading이란?) ArrayList로 구현한 스택을 통해 Operator overloading 및 몇 가지 문법을 정리해볼 것이다. C++에서는 자바의 출력문 System.out.println() 혹은 C의 printf()와 달리 ostream의 ' 2023. 3. 20.
C++ Stack 만들기 (version.3.3 - LinkedList Stack) Stack 만들기 version 3.3 C++ LinkedList로 Stack 만들기 version 3.2에 Information hiding 요소를 보완하여 만들어 보겠다. https://suldenlion.tistory.com/83 Information hiding을 잘 할줄 아는가 못하는가에 따라 코드 작성한 사람이 객체지향 기법을 잘 다룰줄 아는지 모르는지를 바로 알 수 있을 정도로 중요하다고 한다. LinkedList로 Stack을 만들어 오고 있는데, 이전 버전까지는 Stack 객체 따로, Node 객체 따로 정의해서 사용하였다. 프로그래머 입장에서는 Stack과 Node를 모두 사용하면서 코딩을 하기 때문에 문제없지만, 어떠한 사용자가 이 프로그램을 사용한다고 할 때, 사용자 입장에서는 St.. 2023. 3. 19.
반응형