반응형

<개인공부> 261

[C++] 가상함수와 순수가상함수의 차이(virtual, pure virtual)에 대해서

안녕하세요. BlockDMask 입니다. 오늘은 C++의 아주 중요한 가상함수, 순수가상함수에 대해서 알아보겠습니다. 우선, 기본적으로 가상함수(virtual)와 순수가상함수(pure virtual)에 대한 기본적인 지식이 조금 있는 분 이셔야 이 내용을 읽기 적절할 듯 싶습니다. 1. 일반(단순)가상함수, 순수가상함수에 대한 기본적인 개념 - 순수가상함수와 가상함수를 아시는 분이라면 문장하나로 이해할 수 있을거라 생각합니다. - 순수 가상 함수는 인터페이스(Interface)를 자식 클래스에게 전달하기 위해 사용하는 함수입니다. - 일반(단순) 가상 함수는 인터페이스(Interface) + 함수의 선언(내부 구현) 까지 자식 클래스에게 전달하기 위해 사용하는 함수입니다. 풀어서 말하면, 순수가상함수는 ..

[python] 파이썬 설치하기, 아나콘다 설치하기, cmd창에서 python 실행하기

안녕하세요. BlockDMask 입니다.요즘 딥러닝에 관심이 생겨서 공부를 하고 있는데요,그렇게 쉽고 간단하다는 파이썬을 이용해서 실습을 하면서 하고 있습니다. 오늘은 파이썬(python)이라는 언어를 사용할때 편리한 기능을 제공해주는 "아나콘다(ANACONDA)" 배포판을 설치하는 방법과cmd 창에서 python을 실행하는 방법 에 대해서 알아보도록 하겠습니다. (맥북에 파이썬을 설치하는 방법은 바로 여기 있습니다. [바로가기]) 1) 다운로드 및 설치 ▼[URL]https://www.anaconda.com/download/ 위 주소로 가게되면 이렇게 Python3, Python2 중에 어떤걸 다운받을래?32bit 받을래 64비트 받을래?이런 선택권을 주는 페이지가 나오게 됩니다. 파이썬3으로 만든 프..

[C++] dynamic_cast (타입캐스트 연산자)

안녕하세요. BlockDMask 입니다. 이번에는 C++의 네가지 타입캐스트 연산자 (static_cast, const_cast, reinterpret_cast, dynamic_cast) 중에서 마지막 dynamic_cast에 대해서 알아보겠습니다. 1. dynamic_cast에 대해서 dynamic_cast는 safe downcasting(안전한 다운캐스팅)에 사용이 됩니다. (물론 upcasting에도 쓰입니다) 조금 쉽게 말씀 드리자면, 부모 클래스의 포인터에서 자식 클래스의 포인터로 다운 캐스팅 해주는 연산자 입니다. (부모클래스의 포인터가 실제 무엇을 가리키고 있는지가 중요합니다) 하지만, 런타임 시간에 실제로 해당 타입이 다운 캐스팅이 가능한지 검사하기 때문에, 런타임 비용이 조금 높은 캐스트..

[Dev-C++ 설치하기] 프로그래밍 IDE

안녕하세요. BlockDMask 입니다.오늘은 우리가 C, C++ 언어로 프로그램을 개발할때 유용한 IDE를 소개하려고 합니다.툴을 설명하기 전에 IDE에 뜻에 대해서 한번 알아볼까요?IDE란 Integrated Development Environment의 줄임말이며, 한국말로는 통합 개발 환경이라 말합니다.프로그래밍 개발에 필요한 것들을 하나로 모아서, 우리는 IDE 툴을 이용해서 int main~~~~ 이렇게 쓰기만 하면 알아서 컴파일러 찾아서 컴파일 해주고 프로그램도 실행시켜 주는 그런 유용한 툴 이라는 것 입니다.이런 IDE의 종류가 매우매우 많은데. 제가 아는 IDE 중 가장 간편하고 가벼운(=설치하는데 오래안걸리는) Dev-C++ 이라는 IDE에 대해 소개하겠습니다.[설치 방법] 1) 일단 구..

[C++] reinterpret_cast (타입캐스트 연산자)

안녕하세요 BlockDMask 입니다.이번에는 C++ 의 네가지 타입 캐스트 연산자 중에 (static_cast, const_cast, reinterpret_cast, dynamic_cast) reinterpret_cast 에 대해 알아보겠습니다.>reinterpret_cast 에 관한 기본 특성reinterpret_cast(expression)reinterpret_cast(대상) reinterpret_cast는 임의의 포인터 타입끼리 변환을 허용하는 캐스트 연산자 입니다. 또한 정수형을 포인터로 바꿀 수도 있습니다. (이때 정수값이 포인터의 절대 주소로 들어가게 됩니다. -> 위험)expression에 해당하는 것을 new_type으로 비트단위로 바꾸는 것 입니다. 다른 형태의 포인터로 변경이 가능하기..

[C++] const_cast (타입 캐스트 연산자)

안녕하세요. BlockDMask 입니다.오늘은 C++ 의 네가지 타입 캐스트 연산자 중에 (static_cast, const_cast, reinterpret_cast, dynamic_cast) const_cast 에 대해 알아보겠습니다.> const_cast 에 관한 기본 특성const_cast(expression)const_cast(대상) const_cast는 포인터(pointer) 또는 참조형(reference)의 상수성(const)를 잠깐 제거해주는데 사용합니다. const_cast는 volatile 키워드를 잠깐 제거해 주는 데에도 사용이 가능합니다. 다른 캐스트 연산자가 하는 형 변환은 불가능 하며 오직 상수성(const)를 제거하는 것만 사용가능 합니다. 또한 다른 캐스트 연산자는 const_..

[C++] static_cast (타입캐스트 연산자)

안녕하세요 BlockDMask 입니다.오늘은 C++의 네가지 타입변환 연산자 static_cast, dynamic_cast, reinterpret_cast, const_cast 중 static_cast에 대해 알아보겠습니다. > static_cast 기본 형태 static_cast(대상); static_cast(expression)특징 (논리적으로 변환 가능한 타입을 변환한다) compile 타임에 형변환에 대한 타입 오류를 잡아줍니다. 실수와 정수, 열거형과 정수형, 실수와 실수 사이의 변환 등을 허용한다. arr -> point로 변경 가능합니다.function -> function pointer로 변경 가능합니다. 포인터 타입을 다른것으로 변환 하는 것을 허용하지 않습니다. (compile erro..

[운영체제] Banker's algorithm(은행원 알고리즘) 구현 - Deadlock

안녕하세요 BlockDMask 입니다.2017/11/24 - [/[Operating System]] - [운영체제] Deadlock(교착상태)에 대해서지난시간에 이어서 이번시간에는 Deadlock(교착상태)를 회피하거나 탐지할 때 사용할 수 있는 은행원 알고리즘(Banker's algorithm)을 구현해보겠습니다.문제는 공룡책 8th 7.10번 문제입니다.**직접 구현한 것이라,, 많이 부족할 수 있습니다. 보완이 필요한 부분은 댓글로 달아주시면 감사하겠습니다. 1. 구현할 내용현재 시스템의 상태를 아래와 같이 정의 하겠습니다. 프로세스가 안전한지(deadlock 이 발생하지 않는지) 확인할 수 있고 프로세스가 어떤 순서로 자원을 할당 받는지 볼 수 있도록 구현하겠습니다. Allocation Max A..

[운영체제] Deadlock(교착상태)에 대해서

안녕하세요. BlockDMask 입니다.오늘은 deadlock 에 대해서 알아볼까 합니다.deadlock 이 무엇인지, deadlock을 처리하는 전체적인 그림에 대해서 보겠습니다.뭐가 뭔지 전체적으로 그림이 잡히지 않아서 그려보았습니다.1. deadlock 이란.?deadlock(교착상태)란 둘 이상의 Process가 서로가 가진 Resource를 요구하면서 각자의 Resource를 놓지 않아서 더이상 작업수행을 할 수 없이 무한하게 대기 상태로 놓인 상태를 말합니다. 멀티프로세스나 멀티스레드 환경에서 여러 프로세스들이 한정된 자원을 사용하기 때문에 발생할 수 있습니다. deadlock은 4가지 필요조건이 성립할때 발생할 수 있습니다. 시스템이 deadlock 상태가 되지 않도록 보장하기 위하여 dea..

[데통] 왜 OSI 7계층을 나누었을까?

안녕하세요 BlockDMask 입니다. 오늘은 왜 굳이 OSI 7 계층으로 나누었나... 에 대해서 알아보겠습니다. 각 계층별 자세한 설명은2017/09/11 - [/[데이터 통신]] - [데통] OSI 7계층, Network의 구조, NIC2017/10/19 - [/[데이터 통신]] - [데통] OSI 7계층과 TCP/IP 4계층, 계층별 데이터 단위 위 두개의 포스트에 있습니다. " 통신그거 그냥 각자 알아서 하면되지, 굳이 OSI 7계층으로 나누었나.. ""휴 대답못했어" => 표준화를 통해서 다른 회사에서 만든 제품끼리도 통신이 될 수 있도록 하기위해(하드웨어 제조업체들의 공통의 플랫폼을 만들수 있다.) => 큰 단위의 데이터를 작은 단위로 나누고 나누어서 이해하기 쉽고 관리 및 문제 해결이 쉽게..

반응형