c++언어 49

#018_시(c)시(c)해서 C++?!_STL_Vector 예제

안녕하세요 삽잡이입니다... 이번시간에는 지난시간에 이어 Vector(벡터) 에 대해서 알아보려고 합니다... 그 중에서도 순차 보관, 특정키순, 인덱스 이 세가지에 대해서 말입니다. 간략하게 말씀드리자면 순차보관 같은 경우, 들어오는 순차적으로 저장하는 것입니다. 번호 순 보관 같은 경우에는, 번호 순서대로 저장하는 것입니다. 인덱스 보관 같은 경우에는, 원하는 위치에 저장하는 것입니다. 순차 보관 및 번호 순 보관 같은 경우에는 일일히 하나 하나 비교를 해가며 값을 검색하고 입력하고 보관하고 지우고 하겠지만 인덱스 보관같은 경우에는 벡터를 사용하며 가장 빠르게 검색할 수 있다는 장점을 가지고 있습니다... 일일히 비교할 것이 아니라 원하는 값을 입력하여 바로 검색 보관 삭제 등을 수행할 수 있기 때문..

#017_시(c)시(c)해서 C++?!_STL_Vector 맛보기

안녕하세요 삽잡이입니다. 오늘부터는 STL(Standard Template Library) 에 대해서 배워보려고 합니다.. STL 이란 Standard Template Library 즉, 표준 라이브러리입니다...STL은 여러가지의 자료구조 클래스와 알고리즘 등을 반복자를 통해 접근 하여사용할 수 있는 라이브러리 입니다... 우선 이에 들어가기 전에 템플릿에 대해 간략하게 소개를 하고자 합니다.템플릿이란 사전적으로 '틀'이라는 뜻을 가지고 있습니다. '틀'이라고 하는 것은 무엇인가를 만들어줄 수 있는 기능을 가지고 있습니다.즉, 템플릿은 진짜 코드를 만들어 줄 수 있는 가상의 코드입니다.호출하면서 인자를 다양하게 전달을 하는 것이고,컴파일러는 다양하게 전달한 인자를 하나하나 만들게 되죠...참고로... ..

#016_시(c)시(c)해서 C++?!_Call Me Baby ~ 콜백... (커맨드 패턴)

안녕하세요 삽잡이입니다~ 이번시간에는 커맨드 패턴을 통해 CallBack 기능을 느껴보려고 합니다... 커맨드 패턴이란,객체의 행동을 별도의 클래스에 캡슐화해서 행동 객체에 확장성을 부여하는 패턴이라고 합니다...교과서 적인 답변.... 아무도 이런 대답을 원치 않을 것이야!!! 그렇다면 예를 들어보며 callback 까지 함께 느껴보도록 하겠습니다. 이번에는 학생들의 성적기록을 저장 한 뒤에 정렬을 해보는 것으로 설명을 해보도록 하죠...사용자가 원하는 순서대로 정렬해서 출력해볼 것입니다...사용자가 기준을 정해두고 그 기준에 맞게 정렬해달라고 요청하면해당되는 형태로 정렬시키려고 합니다... 우선...'비교한다'라는 기능을 가진 가상 함수를 우선 선언해보도록 하겠습니다.. 123456class ICom..

#015_시(c)시(c)해서 C++?!_Call Me Baby ~ 콜백... (옵저버 패턴)

안녕하세요 삽잡이입니다. 이번시간에는 옵저버 패턴을 사용하여 콜백기능을 확인해보려고합니다... 우선, 콜백에 대해서 알아보도록 하겠습니다...CallBack.... 콜백이란...기존의 main 메서드 즉, 주 객체가 종된 객체들을 호출하던 것과 반대로종된 객체가 주된 객체에게 호출을 던지는 것을 합니다... 우리가 필요에 의해서 main 메서드에서 여러 함수들을 호출을 했었는데요이번에는 여러 함수들에서 주된 객체인 main을 호출한다는 것입니다...정리해서 말씀드리자면,OS에 의해서 개발자가 정의한 함수를 호출하는 것을 콜백이라고 말하는 것입니다... 예를 들자면, 대표적으로 윈도우 프로그래밍이 있죠...우리가 사용하는 윈도우 OS에서 마우스 돌리고, 키보드 누르는 등...모든 행동 하나하나를 할 때마다..

#014_시(c)시(c)해서 C++?!_cout과 endl 흉내내기

안녕하세요 삽잡이입니다... 이번시간에는 우리가 자주 사용하던 cout 기능의 메서드와 endl 을 알아보고자합니다. cout은 iostream에 속해있는 메서드입니다. 그 중에서 ostream 이라는 클래스에 포함되어있죠... 우리는 이 ostream 클래스 안에 있는 cout이라는 친구를 사용하여 출력을 하고 있었습니다... 이전 시간까지 배워온 연산자 중복정의를 응용하여서cout의 기능을 흉내내보려고 합니다... 비록 완벽하진 않지만아.. cout은 이런식으로 구현되있구나라는 것을 맛만 봐보도록 하겠습니다...대충 감이 오실걸요~? 확인해보도록 하죠... 123456789101112131415161718192021222324252627282930313233343536373839404142434445..

#013_시(c)시(c)해서 C++?!_ 대입 연산자 중복 정의

안녕하세요 삽잡이입니다~ 이번 시간에는 대입 연산자에 대한 중복 정의를 해보려고 합니다... 대입과 같은 경우에는 ' = ' 의 연산자를 사용합니다.우항에 있는 값을 좌항에 대입하는 것이죠... 즉 메모리를 덤핑한다고 합니다...그렇다면 객체 또한 대입 연산을 할 수 있겠죠...하지만 객체는 우리가 정의하는 타입에 의해 생성되니 당연하게 연산자 중복 정의를 해야합니다... 하지만 그전에, 한가지 생각해보죠...이전에도 배운 것이었는데... Sap sap1(4, 2);Sap sap2 = sap1; 이와 같이 코드를 작성한다면, 어떤 듯이 될까요? 위에서 말한 대입연산? 아닙니다... C++에서는 Sap sap2 = sap1; 이라고 하는 것 자체가Sap sap2(sap1); 라고 할 수 있다고 했었습니다...

#012_시(c)시(c)해서 C++?!_ 배열의 인덱스 연산자 중복정의

안녕하세요 삽잡이입니닷... [] 연산자는 배열을 쓸 때 많이들 보셨죠? 또한 * 의 기능과 같은 역활을 수행한다고 했었죠...주소 앞/ 뒤에 붙였을 떄 그 주소에 있는 값을 나타내는... 예를들어 [] 연산자는 sap[n];즉, sap이라는 주소에서 +n번째 메모리를 의미하는 것이죠. 이 연산자는 동일한 자료형들을 보관하는 컬렉션에서 접근하기 위한 용도로 사용됩니다...이 또한 우리는 중복정의할 수 있습니다. 우선 비교를 통해 살펴보도록 하겠습니다... int arr[10];arr[4] = 2; 이와같은 arr 배열의 4번째 index에 2를 입력했을 때에 int형 arr의 주소의 4번째 메모리에 2의 값이 들어갑니다... 하지만, 객체의 입장에서 살펴보도록 하겠습니다. 12345678910111213..

#011_시(c)시(c)해서 C++?!_ 이항 연산자 중복정의

안녕하세요 삽잡이 입니다~ 이번 시간에는 연산자 중복 정의에 대해서 알아보려고 합니다...시작하죠 푸하하... 1+1 가 뭔가요? 귀요미 아니죠... 2입니다... 껄껄껄 우리는 당연하게 1+1은 2라고 합니다.. 그런데 말입니다...이 '+' 라는 기능을 C++에서는 개발자 마음대로 중복 정의를 할 수 있게 됩니다...이름하여 연산자 중복정의 (연산자 오버로딩) 라고 합니다... 이 연산자 중복정의는,제공하는 개발자가 사용하는 개발자에게 편의를 주기 위해서 제공하는 기능입니다.왜냐, 어차피 이런 연산자 중복정의해봤자 일반 사람이 쓰겠습니까? ㅎㅎ결국은 개발자가 사용할 것이니,제공하는 개발자가 사용하는 개발자에게.... 라는 말로 설명을 드렸습니다. 1+1, 4-2, 9*3 등등... 피 연산자들이 기존..

#010_시(c)시(c)해서 C++?!_ 잡다구리한 것들... (싱글톤, 기능성, 다형성)

안녕하세요 삽잡이입니다... 오늘은 굳이 C++과 연관 있으려나 할 부분도 있겠지만,C++ 공부를 위해 키보드좀 두드리면서... 개인적으로 정리하고픈 것들을 올리는 시간을 가지도록 하겠습니닷... 1. 싱글톤 패턴 (Singleton Pattern) 우선... 싱글톤 패턴이라는 것은... 간략하게딱 하나의 객체만을 생성하도록 고정하는 패턴입니다...그 한 객체에만 접근할 수 있도록 하는 것이죠... 예를들어 Sap 학교 1-3 반 학생들을 관리하는 출석부가 있다고 가정해보죠...그 출석부 안에는 많은 학생들의 정보가 써있을 터이지만출석부는 하나면 충분합니다... 당연히 한권이겠죠... 이를 코드에서 표현하자면 이와 같이 되는 것이죠... 1234567891011121314class 출석부{ static ..

#009_시(c)시(c)해서 C++?!_프로토 타이핑 ...

안녕하세요 삽잡이입니다~ 오늘은 잠시 쉬어가는? 사실 쉬지 않습니다... 푸하하... 아무튼.. 오늘 들은 것이 있는데...프로토 타이핑에 대해서 들을 기회가 있었습니다~간략하게 소개를하자면.... 자... 여러분은 회사에 계십니다... 자 상상의 나라에 들어가 봅시다... 고갱님께서 돈을 주시며 저희에게 SW 개발 요청을 하셨습니다...그런데 말입니다... 우리가 어떻게 항상 요구사항에 맞게 완벽히 개발을 진행할 수 있겠습니까... 이와 같이 회사에서 고갱님들께서는 시각적으로, 화면 정의 하는 부분들에 대해서수정 및 추가하는 요구를 하실때가 많다고 하십니다... 다 구현해놨는데... 갑자기 수정을 해야되는... 그런 마음 아픈일을...(저는 아직 회사에서 경험 못했습니다... 학생이라... 푸하하.....