본문 바로가기

분류 전체보기59

[C++] 가상함수(Virtual function)와 다형성 이 페이지는 상속(Inheritance)에 대하여 어느 정도 사전지식이 있다고 생각하고 서술하였습니다. C++의 객채지향프로그래밍의 가장 중 큰 특징 중 하나인 가상함수와 다형성에 대하여 알아볼 것이다. 가상함수(Virtual Function)이란 자식클래스에서 이미 정의되어 있는 부모클래스의 멤버함수를 오버라이딩(재정의)한 멤버함수를 의미한다. 먼저 코드를 통해 가상함수의 기본적인 개념인 '오버라이딩'에 대해 알아보자#include #include using namespace std;class Parent { public: void WhoIam() { cout WhoIam(); // delete p1; Child *c1 = new Child(); c1.. 2024. 8. 9.
Memory type 메모리 영역 typeCode 영역: 프로그램 명령 코드 자체를 저장하는 메모리 영역으로, Hex(16진수) 파일이나 BIN(2진수) 파일이 저장되는 영역 Data 영역: 전역변수, 정적변수, 배열, 구조체 등 valid한 값들로 초기화된 변수들이 저장되는 영역초기화 되지 않은 변수는 BSS(Blocked Stated Symbol)영역(= .ZI영역, 0으로 초기화된)에 저장 Heap 영역: malloc(), new() 같은 동적인 메모리를 할당할 때 위치하는 메모리 영역 -> 힙의 경우 하위주소에서 상위주소로 할당을 진행 Stack 영역: 지역변수, 매개변수, 리턴값 등 잠시 사용되었다가 사라지는 임시 데이터를 저장하는 영역 -> 스택의 경우 상위주소에서 하위 주소로 할당을 진행data영역과 bss 영역.. 2024. 8. 9.
Process & Thread OverviewProcess란 실제 프로그램이 메모리에 loading되어 실행되는 작업을 의미하며, Thread는 프로세스 내에서 실행되는 흐름의 단위(Process의 subset)를 의미합니다. 따라서 기본적으로 하나의 프로세스는 최소 하나의 스레드(main thread)가 실행된다고 볼 수 있습니다. Process프로세스는 각각 자신만의 별도의 주소와 자원을 할당하여 사용(Code, Data, Heap, Stack영역)하나의 프로세스는 다른 프로세스의 메모리나 리소스에 접근 불가따라서 접근을 위해서는 IPC(Inter Process Communication) 통신을 사용하여 통신 Thread스레드는 하나의 프로세스 내에서 실행되므로 스레드 생성 시 Stack영역만 새로 할당 받으며 Code, Data.. 2024. 8. 9.
ARM Memory System Memory TypeARM architecture에서 memory는 크게 두 가지 type으로 분류 됨. Normal Memory일반적으로 data나 code가 load되어 처리되는 영역으로서 R/W나 RO로 동작ARM processor는 해당 영역에 대하여 cache 기법을 적용할 수 있음 또한 성능 향상이나 최적화를 위해 하기와 같은 기법을 사용할 수 있음. Merge access연속된 메모리 공간에 접근하는 2개 이상의 명령어를 한번에 처리. ex) 0xF000_0000. 0xF000_0004, 0xF000_0008의 연속된 메모리에 대해 4byte씩 접근하는 경우 3번의 access를 수행하여야 하는데, 이때 다수의 access를 merge하여 0xF000_0000으로 부터 한번의 transact.. 2024. 7. 30.
Python 기본 문법 정리(5) Class(모듈)Module(모듈)Module(모듈)이란 특정 기능을 위해 별도로 분류하여 작성한 데이터 및 함수로서 요소로서 이러한 모듈들이 모여 하나의 시스템, 프로그램을 구성함(라이브러리 개념)파이썬에서 모듈을 사용하기 위해서는 import 키워드를 통해 불러올 수 있음불러온 모듈 내의 클래스에 정의된 메소드(함수)를 사용하기위해서는 .. 형태로 호출해야 함# 기본적인 모듈 import 및 사용 방식import datetime''': datetime: datetime: now'''print(datetime.datetime.now()) 모듈의 특정부분만 import하기 위해서는 from / import 키워드를 사용하여 불러옴해당 키워드를 사용하여 import하는 경우 모듈 name을 생략할 수 있다.. 2024. 7. 17.
Python 기본 문법 정리(4) 프로그래밍을 하다보면 특정 기능을 수행하는 code를 반복적으로 사용하는 경우가 있는데, 이를 따로 묶어 재사용하기 위한 코드의 집합을 함수(function)이라고 한다. 기본구조파이썬에서 함수는 기본적으로 다음과 같은 구조를 가지고 있다.def 함수이름(매개변수1, 매개변수2...): """ 함수 내용 """ return return_value # 실제 함수 호출ret = 함수이름(인자1, 인자2...) 함수는 매개변수를 통해 입력 값인 인자를 전달하고, return을 통해 출력 값을 반환한다.함수의 기능에 따라 인자가 필요없거나, 반환 값이 필요없을 수 있다.# 입력이 없는 함수cnt = 1234def get_count(): global cnt return c.. 2024. 7. 17.
728x90