c++언어 49

#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에서는 구조체로 이런 캡..

#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 라고 하죠.....

SP_#000_A promise a promise!

때는 바야흐로 2015년 6월 ...7월이 다가오는 이 시점에 삽잡이는 중대한 결정을 내립니다 ... C, C++, 자료구조 씹어먹고 옵니다. 특명 여름 방학을 사수하라! Summer Project~! 6월 22일 부터 시작됩니다. Coming Soon! 이렇게 쌔앵 쑈를 해야지 뭔가 올리지않을까 싶어서... 아하하...꼴사나웠다면 죄송합니다... /* 20150624 * 하루하루 양이 생각보다 방대해서 두서없이 주절주절 거리네요... * 주말에 폭풍 꾸미기 돌입해야겠습니다... * 평일동안에 엉망이라도 용서해주세요... * 이글은 아무도 안보실 터이지만... 아하하... */