본문 바로가기

전체 글

(117)
[오브젝트] ch13 서브클래싱과 서브타이핑 💡이 글은 조영호, 『오브젝트: 코드로 이해하는 객체지향 설계』, 위키북스(2019) 책을 읽고 작성한 글입니다. 타입부터 시작하여 설명을 진행한다비트열에 의미를 부여하고 제약과 규칙을 정한게 타입을 말한다. 객체지향 관점에서의 타입은 수신할 수 있는 메시지의 종류를 정의한다는 것이다. 어떤 행동을 하게 될지 결정되는 것이 타입이고 타입의 경우 일반화된 것에서 부분 집합이 되는 타입은 특수화 되었음 "프로그래밍 언어"> "객체지향 언어" > "클래스 기반 언어" 등의 에시로 설명해주어 와닿았다. 글의 전개가 잘 읽히게 구성되어 있어 객체지향 뿐만 아니라 글쓰기에 대해서도 배우는 기분이다.
[오브젝트] ch12 다형성 💡이 글은 조영호, 『오브젝트: 코드로 이해하는 객체지향 설계』, 위키북스(2019) 책을 읽고 작성한 글입니다. 저자는 다형성(polymorphism) 그리스어로 다양한을 의미하는 poly와 형태를 의미하는 morph의 합성어임을 12장 앞에서 설명해 주며 시작한다. 동물 클래스가 있을 때 소리 내는 행위가 있고 고양이 클래스에서는 야옹, 강아지 클래스에서는 왈왈이라 하였을 때 고양이의 소리 내는 소리 내는 것을 동물 클래스의 소리 내는 것으로 형태를 바꾸어 표현할 수 있다.이렇게 소리 낸다는 행위는 같지만 누가 그 행위를 하였는가에 따라 다양하게 표현할 수 있게 된다.다형성의 분류다형성의 분류에는 매개변수 다형성, 포함 다형성, 오버로딩 다형성, 강제 다형성 4가지가 있음을 알려준다. 매개변수 다형..
[컴퓨터 시스템 딥다이브] ch03 C 디버깅 도구 💡이 글은 컴퓨터 시스템 딥다이브(수잰 J. 매슈스, 한빛미디어 2024)를 읽고 적은 글입니다.GDB, Valgrind, DDD 등 디버깅 도구들에 대해 소개 및 활용방법에 대해 알려준다.아무래도 컴퓨터 시스템이 주제이다 보니 이후에 나오는 내용들에 대해 실습을 할 수 있고 그럴 때 디버깅을 해야 할 일이 생기기 쉬울 테니 알려주는 것 같다.C++ 홍정모님의 자료구조 강의를 듣고 실습 중이었는데 책에 소개된 디버깅 방법들을 활용해 보았다.Source CodeLinkedNode.cpp#include using namespace std;struct Node{ int item = 0; // item next); }}void IterPrint(Node* node){ // TODO: std::cout it..