프로그래밍 언어 92

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

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

#008_시(c)시(c)해서 C++?!_이름은 같은데 하는짓은 다 달라... 다형성

안녕하세요 삽잡이입니다. 오늘은 다형성에 대해서 배워보도록 하겠습니다...겉으로는 보이는 건 하나지만, 구체적으로는 모두 다를 수 있다...이게 바로 다형성입니다... 파생을 통해서 얻을 수 있는 이점중 하나는 바로기반 클래스 형식의 포인터 변수로 파생된 개체를 관리할 수 있다는 것입니다...말이 좀 어렵죠?이말인 즉, 기반 클래스에 직접적으로나 간접적으로나 상속 되는 클래스는 모두 관리할 수 있다 이겁니다...더 어렵나요? 허허... 이전 시간에 예시를 들었던....피아니스트, 드러머, 기타리스트 등 음악가와 관련된 개체들을음악가 형식의 포인터 변수로 관리 할 수 있다 이거죠... 좀더 생각해본다면, 음악가 형식의 변수 즉, 기반 클래스 형식의 포인터 변수 하나로 여러개의 파생 클래스 형식의 객체들을 ..

#007_시(c)시(c)해서 C++?!_상속을 가지고 놀아보자~

안녕하세요 삽잡이입니다. 지난 시간에는 클래스간의 관계에 대하여 알아봤었습니다.오늘은 그중에서 일반화 관계 즉, 상속과 다형성에 대해서 알아보려고 합니다. 일반화...란 뭐라고 했었나요? 'is a' 관계라고 했죠...예를 들어볼까요?'삽잡이는 사람이다.' '삽잡이는 남자다.' 등등... 삽잡이는 사람에 기반하고 있으며, 삽잡이는 남자에 기반하고 있습니다.또한, 남자는 사람에 기반하고 있죠...흠... 모두 사람에 기반하고 있네요... 그렇다는 뜻은, 사람이라는 기반 클래스를 통해서 남자, 삽잡이와 같은 파생 클래스를 통해 파생을 표현할 수 있다 이겁니다... 어렵게 설명했나요? 그러면 실제 코드를 보시며 이해를 해보도록 하겠습니다. 1234567891011class Musician{ string nam..

#006_시(c)시(c)해서 C++?!_클래스간의 관계

안녕하세요 삽잡이입니다~! 이번 시간에는 클래스간의 관계에 대해서 알아보고자 합니다! 클래스간의 관계에 대해서 UML을 사용할 것이구요... 음... 우선 UML 모델링 툴에는 대표적으로... Rose, Together, Visual, Visual Paradigm 등등 있습니다. 그리고 제가 오늘 사용할 StarUML 또한 있고요.... 자... 이들을 모두 Case 도구라고 부릅니다. Case 도구는 Computer Aided Software Engineering의 약자를 가지고 있고요 소프트웨어 개발과정을 자동화하기 위해서 사용하는 소프트웨어 도구라고 합니다... 웩.. 뭔말이야... 쉽게, 프로그램 개발 방법론에 의해 진행되는 프로세스에서 이 툴들이 사용된다는 것인데요 ... 자.. 우리가 제품을 ..

#005_시(c)시(c)해서 C++?!... 조금은 불편한 생성자...

자... 한번 생성자부터 소멸자까지 한번 쓸어담아봅시다!물론 예제를 통해서 말입니다 하하... 우선, header입니다. 1234567891011121314151617181920212223242526#pragma once#include using namespace std;class Stu{ int num; string name; int hp;public: // 기본 생성자 //Stu(); // 생성자 Stu(int num); Stu(int num, string name); // 복사 생성자 Stu(const Stu &stu); // 기본 소멸자 //~Stu(); void Study(); int GetHp(); int GetNum();};cs 헤더는 어떤 역할을 담당하느냐...이런 형식들이 있다... 이런..

#004_시(c)시(c)해서 C++?!... C와 C++의 변수와 동적할당

안녕하세요 삽잡이입니다~ 이번시간에는 C와 C++의 비교를 통해 변수와 동적할당에 대해 살펴보고자 합니다. C++ 에서 malloc과 free 사용이 불가능한 것은 아닙니다.하지만 조금 더 안전하게 사용하기 위해서 new 와 delete를 사용한다고 합니다.자세히는 잘... 흙... 아무튼 예제 보시죠... 123456789101112131415161718192021222324252627282930#include #include using namespace std; void main(){ int i = 2; // C++에서 가능한 변수 선언 및 초기화 int j(2); // C 동적할당 int* p1 = (int*)malloc(sizeof(int)); // C++ 동적할당 int* p2 = new int..

#003_시(c)시(c)해서 C++?!... C와 C++의 캡슐화차이

안녕하세요 여러분 삽잡이입니다. 오늘은 캡슐화에 대해서 배워보려고 합니다... 캡슐... 아파들 보셨죠?? 말이 이상한가요... 혹시 약먹을 때 캡슐 까서 드셔보신 적 있으신가요? 그 캡슐 하나에는 수없이 셀수 없는 가루들이 들어있죠.... 프로그래밍으로 넘어와서 그래서 캡슐화는.... (죄송합니다... 발 비유...)아무튼... C++ 에서 캡슐화란 무엇인가를 캡슐로 만드는 과정이라고 볼 수 있습니다. 자... 예를 들어볼까요... 학생하면 떠오르거나 관련 있는 것들 다 말해볼께요! 이름, 번호, 체력, 혈액형, 공부하다, 알바하다, 잠자다, 졸다, 사랑에 빠지다(잉?) 등등.... 이 학생에 관한 모든 것들을 형식으로 묶는 일련의 과정을 바로, 캡슐화라고 하는 것입니다... C에서는 구조체로 이런 캡..

곱씹어보자 C!_#031_삽잡이의 파일 입출력을 사용한 저장 및 복원 예제

안녕하세요 삽잡이입니다.. 이번 글은 파일 입출력에 관한 실습 예제 입니다. 역시 코딩은 눈으로만 보는 것이 아니라 직접해봐야한다는... 인터넷의 많은 도움과 짜집기의 힘을 얻어 만든 이 코드는 문자열 입력, 출력, 검색, 삭제, 저장, 복원의 기능을 가지고 있습니다... 다시한번 인터넷님에게 감사드리며... 많은 정보들을 남겨주신 모든 분들에게 감사드리며... 푸하하... 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798..

#002_시(c)시(c)해서 C++?!... C와 C++의 차이 실제 예시

자... 실제로 C와 C++의 똑같은 목적을 가진 코드를 볼 것인데요, 똑같은 방향을 바라보는 C와 C++이 어떻게 달리 구현되는지 확인해보도록 하겠습니다. 우선 C의 입장에서 헤더파일을 만들어보도록 하겠습니다. 1234567891011121314#pragma once #define MAX_NAME_LEN 200typedef struct _Member{ int num; char name[MAX_NAME_LEN+1]; int iq;}Member; Member *NewMember(int num, const char* name);void DeleteMember(Member* member);void Member_View(Member* member);void Member_View(Member* member);cs..

#001_시(c)시(c)해서 C++!?... C와 C++의 차이

오늘부터 C++에 대해서 알아보록 하겠습니다. C++은 C언어의 문법에 새로운 것들이 추가된 언어입니다. 그래서 ++ 한거죠... C와 C++의 가장 큰 차이라고 한다면, 바로 객체지향이라는 개념에 있지 않을까 합니다. C++ 언어는 신뢰성에 관해 많은 문법적인 제약을 두어서 신뢰성 없는 부분에 대해 오류를 발생하여 수정하게 합니다. C에서는 warning 이었던 사항들이 error로 되어 아에 컴파일 진행이 못되게 하는 경우가 있다 이겁니다. 물론 이 비교는 C#이나 Java가 아닌 오직 C언어와의 비교를 하는 것을 명심해주시길 바랍니다. C++언어는 객체 중심으로 프로그래밍을 할 수 있는 특징을 가지고 있습니다. 영어로 Object Oriented Programming Language 라고 하죠.....