컴퓨터 수업(64)
-
프로그램이 프로세스화 된다는것은 2020.11.10
-
CPU의 구성요소와 어셈블리언어를 CPU가 해석하는 방법 2020.11.08
-
C++ 상속
@먼저 기본적인 소스코드를 보자면 다른건 볼 필요없고 가장 중요한건 마지막줄의 derived.print_base(); 이다. 상속받은 클래스의 인스턴스가 부모클래스의 메서드를 사용했다. 부모클래스,super클래스,base클래스(기본클래스) 모두 동의어, 상속을 "해주는" 클래스를 이와같이 표현 자식클래스,sub클래스,derived클래스(파생클래스) 모두 동의어, 상속을 "받는" 클래스를 이와같이 표현 @상속은 어떤 문법으로 이뤄지는가? 접근지정자가 상속을 해주는 직접적인 문법은 아니니, 어떻게보면 : 라는 operator가 상속을 지시하는것이라 생각할 수도 있겠다. 다중 상속은 , 으로 나눈다 ex) class Parent:public child1,public child2{}; @상속 접근 지정자란 무엇..
2020.11.05 -
재귀에 대한 생각.
재귀를 어떻게 사용하는가? 라는 질문은 다시 재귀를 왜 사용하는가? 라는 질문은 다시 전방재귀랑 후방재귀의 사용법으로 귀결된다. - 먼저 내가 전방재귀와 후방재귀를 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