컴퓨터 수업/C++(39)
-
재귀에 대한 생각.
재귀를 어떻게 사용하는가? 라는 질문은 다시 재귀를 왜 사용하는가? 라는 질문은 다시 전방재귀랑 후방재귀의 사용법으로 귀결된다. - 먼저 내가 전방재귀와 후방재귀를 expand해서 (#include 와 같이) 해석해봐야된다. 전방재귀는 어떤, stack의 역할을 수행한다. 그렇다면, 후방재귀는? 후방재귀야 말로, 개인적으로 생각하기엔, 재귀의 역할을 가장 잘 수행한다. 후방재귀는 buffer의 역할을 수행한다. 후방재귀는 "마치 미지의값을 아는 것 처럼 행동"한다. Fibonacci 재귀함수 구현을 기억하는가? return Fib(num -1)만 보고 생각해보자면, 나는 Fib(num-1)를 알지 못한다, 하지만 컴퓨터가 알거라는 "믿음"을 가지고, 해당 재귀를 사용하는것이다. 마치 while가 for문..
2020.11.04 -
Outer, Inner Class의 생성자와 소멸자 호출 타이밍
◆이는 컴파일러와 무관한 C++의 스타일인것을 확인했음. 생성자는 필드먼저, 소멸자는 this 먼저
2020.11.04 -
문자열 관리 {char*, char[] , string}
C++에서 문자열을 관리하는 방법 char* , char[], string 각 방법들이 문자열을 어떤 방식의 메모리 관리로 운용하는지 char[] str1 = "STR1"; char* str2 = "STR2"; // 실은 동작하지 않는다. string str3 = "STR3"; 1. char[] 2. char* 3. string은 잘 모른다... ㅠ 정리: 우선 Hello라는 상수 문자열 형태가 "실제론" 어떤 값을 갖고 있는지 고민 해 볼 필요가 있는데, 우리는 char라는 엔터티에 문자열을 저장할 수 없으므로, 문자열을 "주소"로 다룬다. 따라서 상수 문자열 형태도 "실제론" 메모리주소를 나타낸다. 따라서, char* str2 = "Hello"의 경우엔 str2에 상수문자열 형태의 Hello란 문자열..
2020.11.04 -
How will we deal with "Past-happened" problem
우선 답부터 말하자면, 어떤 수정을 행해야 하는지에 따라, 자료형을 정하고, 그 자료형을 생성하여, 주어진 데이터를 해당 자료형에 넣어서 해결한다. 우리가 다뤄야 할 문제는 이미 "과거에 일어난 일"을 수정 (By CRUD theorem, we could call this as "Update") 해야 하는가에 대한 문제이다. 예를들면 bracket problem, keylogger problem 등이 있다. 어떤 특정 String 이나 data를 받아서, 이를 "어떤식으로" 수정 해야하는 상황인데, 어떤 수정을 해야하는지에 따라, 주어 진 자료를 어떤 자료형에 넣어야하는지가 바뀐다, 예를들어, Keylogger problem의 경우, 주어진 자료형은 Doubly Linked List였다. 우선 해당 자료..
2020.11.04 -
기본생성자(void) 호출방법.
보다싶이 에러난다, parameter가 void인 constructor는 아예 인수없이 초기화해야한다.
2020.10.31 -
-> operator는 역참조 연산자인가?
(*ob1).get(); ob1->get(); 두 statement는 같다. 다만 ob1은 포인터변수로 선언되었기에, 역참조를 해야 해당 메소드를 호출 할 수 있다. 따라서 -> operator는 역참조 연산자가 맞다.
2020.10.27