12장 - 상속(Inheritance)
1. 상속(Inheritance)이란? 여러분이 알고계시는 '상속(Inheritance)'은 무엇인가요? 물론, 이미 타 언어에서 상속을 미리 만나보신 분들도 있겠지만, 아닌 분들도 계실겁니다. 상속은 "일정한 친족적 관계가 있..
키자드에 등록된 총 348개의 포스트를 확인하실 수 있습니다.
1. 상속(Inheritance)이란? 여러분이 알고계시는 '상속(Inheritance)'은 무엇인가요? 물론, 이미 타 언어에서 상속을 미리 만나보신 분들도 있겠지만, 아닌 분들도 계실겁니다. 상속은 "일정한 친족적 관계가 있..
1. 객체 배열(Object Array) 변수 배열, 구조체 배열은 들어보셨어도 객체 배열에 대해서는 들어보셨나요? 객체 배열도 다른 배열과 마찬가지로 비슷한 형식으로 선언됩니다. (데이터 타입 대신 클래스명이 위치합..
일반적으로 브랜디를 베이스로 하면 「브랜디 알렉산더」라고 부르며 브랜디를 진으로 사용하면 「진 알렉산더」가 된다. 메모 영국왕 에드워드 7세가 결혼 기념으로 왕비인 알렉산드라에게 받쳤다는 칵테일이다...
1. 참조자(Reference) 참조자(Reference, 레퍼런스)는 간단히 말하면 변수에 또 하나의 별명을 붙여주는 녀석입니다. 할당된 어느 메모리 공간에 이름에, 둘 이상의 이름을 부여하는 것이므로 대상이 이름이 존재..
1. 프렌드(friend) 여러분이 알고계시는 friend의 뜻은 무엇인가요? 아시고 계시듯, friend는 "친구"라는 뜻을 가지고 있습니다. C++에서에 friend도 마찬가집니다. 클래스와 클래스끼리 친구(friend)관계를 형성..
1. Bool 오늘은 'Bool' 이라는 논리 자료형에 대해 알아보도록 하겠습니다. 논리, 말 그대로 참(true)과 거짓(false)으로만 구성되어 있는 자료형입니다. 이 true와 false는 논리 연산자(&&, ||, !)에서 자주 봤었..
1. 생성자(Constructor) 오늘은 객체 생성/소멸시에 호출되는 생성자와 소멸자에 대해 알아보도록 하겠습니다. 우리는 바로 전 강좌에서, private로 지정된 필드(=멤버 변수)를 초기화 시키기 위하여 SetInfo 함수..
1. 클래스(class) 클래스란 무엇일까요? 다른 언어를 공부하시다가 '클래스(class)'라는 말을 들어보신 분도, 그렇지 않은 분도 계실겁니다. C++의 클래스는, 쉽게 말하자면 C의 구조체에서 확장된 C++의 구조체의..
1. C언어의 구조체 C언어의 구조체를 다시한번 살펴보도록 합시다. 우리는 C언어 12강에서 구조체를 사용하여 관련있는 변수들끼리 묶어 손쉽게 관리를 할 수 있었습니다. 예를 한번 보도록 합시다. 1 2 3 4 5 6 7..
1. 함수 오버로딩(Function Overloading) 함수 오버로딩(Function Overloading)이란, 함수명은 같으며 인자의 자료형이나 수가 다른 함수의 선언을 허용하는 것을 말합니다. C에서는 함수 오버로딩을 허용하지 않..
1. C언어의 malloc & free 우리가 C언어를 배울때, malloc과 free란 녀석은 이미 만나본적이 있습니다. malloc이란 함수는 '힙 영역에 메모리 공간을 할당할 수 있게 도와주는 함수'라고 말했었고, free 함수는 '..
1. 네임스페이스(namespace) 네임스페이스란 뭘까요? 이름 공간? 이 네임스페이스에 대해 알아보기 전에, 예를 하나 들어보겠습니다. 약 100명 정도의 개발자가 A, B, C라는 팀으로 나누어 팀 프로젝트를 진행한다..
1. 파일 입출력 오늘은 매우 중요하게 쓰이는 파일 입출력에 대해서 알아보도록 하겠습니다. 우선 본격적으로 들어가기 전, 파일 입출력은 뭘까요? 프로그램에서 리디렉션을 사용하지 않고도 어느 파일에 대한 입..
유투브 .mp3 .mp4 변환 및 다운로드 01. https://www.onlinevideoconverter.com/ko/youtube-converter 02. https://www.youtubnow.com/ko/
2012년 1월에 시작하여, 2월에 마무리 되었던 C언어 강좌에 이어 C++ 강좌를 해보려고 합니다. 강좌는 여러분들이 C언어를 알고있다는 가정 하에 진행됩니다. 즉, C언어 강좌 진행할때 설명드린 변수, 분기문, 반..
1. std::cout 두번째 강좌로, C++의 기본 입출력 함수인 cin, cout을 설명해드리도록 하겠습니다. 먼저 cin 부터 보도록 할텐데, 제일 처음 만나볼 cout 함수는 C언어의 printf와 흡사합니다. 바로 보도록 할까요?..
1. 공용체(union) 저번 편에선 구조체에 대해서 알아보았는데 이번에 배울 공용체(union)란 뭘까요? 공용체는 말 그대로, 같은 메모리 공간을 여러개의 변수가 공유하며, 공용체를 선언하여 사용하는 방법은 구조..
1. 구조체(Structure Types) 이번 편에서는 구조체(Structure Types)에 대해서 알려드리려고 합니다. 서로 다른 변수의 형태를 하나의 블럭으로 묶은걸 구조체라고 하며 구조체의 선언방법은 아래와 같습니다. 1 2..
5. 배열과 포인터 포인터와 배열은 밀접한 관계가 있으며 이제부터 그 관계를 설명하고자 합니다. 배열의 이름은 사실 배열의 시작번지를 갖는 포인터 상수이며, 즉 첫번째 원소의 주소값을 나타냅니다. 아래 예..
1. 주소 값의 이해와 표현 이 강좌에서 배우게 될 포인터는 필자도 어렵게 생각하는 부분이며 C언어에서 가장 어렵고도 핵심인 구간입니다. 포인터에 들어와서 바로 포인터를 다루게 된다면 혼란이 생길 수 있으..
1. 배열(Array) 앞으로 배우게 될 배열(Array)은 많은 수의 데이터를 관리할때 상당히 편리한 녀석입니다. 우선 우리가 배열을 모른다 가정하고, 예를 들어서 100개의 수를 모두 저장해야 한다고 해봅시다. 값을..
1. 문자열 함수 오늘은 문자열 함수와 메모리 구조에 대해서 알아보도록 하겠습니다. 먼저 문자열 함수에 대해 알아보도록 할텐데, 문자열 함수에는 많이 알려져있는 함수들인 strcpy, strncpy, strcat, strncat,..
1. while, do~while, continue 이번에는 반복문에 대해서 살펴보도록 할텐데, 반복문의 이름에서 어떤 역할을 하는 녀석인지 대충 짐작이 가시죠? 만약에 어느 한 문장을 100번 출력하고 싶으면 어떻게 코드를..
1. #include #include(포함하다,~을 포함시키다)란 녀석은 외부에 선언되어 있는 함수 혹은 상수 등을 사용하기 위하여(구현과 선언의 분리) 선언해야 하는 것으로 이것은 #define와 같이 전처리기라 불리며 컴파..
1. if~else(만약에~) 우리가 배울 제어문이란 말 그대로 프로그램의 실행 흐름을 제어하며 C언어에서는 조건문과 반복문을 제공합니다. 조건문은 우리가 특정 조건을 부여하고 그 조건이 만족하면 해당 문장을 수..
step.1 #db를 export한다. exp userid=system/pwd file=dump.dmp owner=olduser step.2 #schema 추출한다. imp userid=system/pwd file=dump.dmp fromuser=olduser touser=newuser indexfile=schema.sql constrain..
1. 함수의 정의 이번편에서는 함수(Function)에 대해서 알아보도록 하겠습니다. 함수란 뭘까요? 이 함수란 것은, 특정한 작업을 수행하는 또는 서로 관련있는 코드들의 모임으로 하나의 단위를 말합니다. 이 함수..
1. 프로그램 기본 구성 자, 이제 Visual Studio를 열어 새 C 프로젝트를 만들어 봅시다. (프로젝트 생성시 응용 프로그램 마법사에서 빈 프로젝트에 체크) 그다음 프로젝트가 생성되었으면, 솔루션 탐색기에서 소..
1. 지역 변수와 전역 변수 지역 변수(local variable)와 전역 변수(global variable)에 대해서 간단히 설명해보도록 할텐데, 지역 변수란 우리가 선언한 지역을 벗어나면 기억 공간에서 자동으로 소멸합니다. 이..
1-1. 변수(Variable) 변수(Variable)란 무엇일까요? 이미 익히 들어보신 분도 계실거라 생각합니다. 변수란 쉽게 말하면 값을 담아두는 기억 공간입니다. 변수는 하나의 데이터 값을 가질수 있으며, 한번 정해진..
1. + (문자가 하나 이상 있으면 일치) 지금까지 배운 정규 표현식을 사용하여 이메일 형식을 검색하고자 한다면, 어떤 방식으로 검색을 할 수 있을까요? 여태까지 배운 내용으로는 "[email protected]" 즉, \w@\w\.\w 라고..
1. 수량자(Quantifier) 오늘 배우게 될 수량자는 아래와 같습니다. (참고로 앞에서 배웠던 메타 문자 +, *, ?도 수량자에 속함) 수량자 설명 {n} 정확히 n개만을 찾습니다. {n,} n개 이상을 찾습니다. {n,m} 최소..
1. 하위 표현식(Subexpression) 하위 표현식(Subexpression)이란, 특정 패턴, 표현식을 하나의 항목으로 처리하는 것입니다. 이 하위 표현식을 사용하려면 소괄호를 사용해야 합니다. 참고로, 소괄호 역시도 메타..
1. 역참조(backreferences) 역참조(backreferences)란 무엇일까요? 말 그대로 역으로 참조하는 것을 나타냅니다. 정규 표현식에서는 패턴의 일부를 하위 표현식으로 묶으면, 첫번째로 나타나는 부분 문자열을 찾은..
1. 전방 탐색(lookahead) 전방 탐색(lookahead)이란 작성한 패턴에 일치하는 영역이 존재하여도 그 값이 제외되어서 나오는 패턴입니다. 전방 탐색 기호는 ?= 이며, = 다음에 오는 문자가 일치하는 영역에서 제외..
1-1. C언어의 시작 컴퓨터를 잘 모르시는 분들도 내부에서 이동하는 데이터는 '0'과 '1'로만 구성된 디지털 신호의 조합이라는 것을 알고 계실겁니다. 우리가 이 컴퓨터에게 어떤 특수한 명령을 내리려면 어떻게..
살펴보면서 전진하자! 너비 우선 탐색(BFS, Breadth First Search) 이번에는 너비 우선 탐색(BFS, Breadth First Search) 알고리즘에 대해 알아보려고 합니다. 우리가 전에 알게된 깊이 우선 탐색(DFS)과는 달리..
1. 정규 표현식(Regular Expression, Regex)란 무엇인가? 오랜만에 강좌를 시작해보는듯 합니다. 시험기간에 밀려 블로그에 포스팅을 하지 못했는데, 이제야 글을 쓰게 되네요. 잡담은 여기서 멈추고, 본론으로 들..
1. 간단한 문자열 찾기 이번에는 평범한 텍스트를 이용해서 검색을 해보도록 하겠습니다. (평범한 텍스트도 정규 표현식이 될 수 있음) 아래를 한번 보도록 합시다. Reg. Expression: Text Text: ABCText Text I..
1. 문자 집합(character set) 이번에는 어떤 문자든 통하는 . 문자와는 달리, 대괄호([])를 사용하여 문자 집합을 표현해보도록 할 것입니다. 문자 집합의 예를 한번 살펴보고, 문자 집합이 어떤 것인지 한번 생각..
1. 메타 문자(meta character) 정규 표현식에서의 메타 문자(meta character)는 특별한 존재입니다. 메타 문자 그 자체는 특별한 녀석이며, 이미 사전에 약속되어진 문자를 뜻합니다. (특수한 문자나 다름이 없음)..
매 순간마다 최선의 선택! 탐욕 알고리즘(Greedy Algorithm) 오늘 알아볼 알고리즘은 '탐욕 알고리즘(Greedy Algorithm)' 입니다. 알고리즘의 이름 그대로, 상당히 욕심이 많은 알고리즘 입니다. 탐욕 알고리즘이..
해를 찾기위해 전진, 또 전진! 깊이 우선 탐색(DFS, Depth First Search) 이번에는 깊이 우선 탐색(DFS, Depth First Search)이라는 알고리즘에 대해 알아보려고 합니다. 일반적으로 이 DFS 알고리즘을 구현할때는..
데이터를 찾아보자! 순차 탐색(Sequential Search) 이 강좌에서 알게될 '순차 탐색(Sequential Search)'는 바로 데이터가 모인 데이터 배열이 있으면 이 데이터 배열의 처음부터 끝까지 차례대로 비교하여 원하는..
데이터를 찾아보자! 이진 탐색(Binary Search) 이번에는 순차 탐색에 이어 이진 탐색(Binary Search)에 대해 알아보도록 할텐데, 이 '이진 탐색(Binary Search)'이 왜 이진인지 짐작이 가시나요? 이진 탐색이란 이..
데이터를 찾아보자! 이진 탐색 트리(Binary Search Tree) 이번에는 이진 탐색(Binary Search)이 적용된 이진 트리(Binary Tree)에 대해서 알아볼 것입니다. 이진 트리(Binary Tree)에 대해 더 상세한 설명을 보고..
데이터를 빠르고 쉽게 정렬 알고리즘(sorting algorithm) 정렬의 사전적 의미는 '데이터를 특정한 조건에 따라 일정한 순서가 되도록 다시 배열하는 일'를 말하는 것으로 예를들자면 학교에서 각 반 학생들을 키..