programming/cpp
[C++] Template
C++은 일반화 프로그래밍 템플릿은 원래 C++ 표준이 아니었고 일반화 프로그래밍 표준이었는데원래 템플릿 쓰던 애들이 가져와서 C++에서 쓰는거다. 구표준까지는 따로였지만, 신표준으로 넘어가면서 '템플릿도 C++이야' 라고 선언하면서템플릿이 C++에 흡수되고, 그걸 표준화시킨게 STL(Standard Template Library)다. 얘는 일반화 프로그래밍이라 타입을 정할 수 없다. 1. C++에는 2가지 템플릿이 있다.1. 템플릿 함수(외부함수를 템플릿으로 만들겠다 이거야)2. 템플릿 클래스 VS 01_ 코드참고)1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575..
[C++] Template
C++은 일반화 프로그래밍 템플릿은 원래 C++ 표준이 아니었고 일반화 프로그래밍 표준이었는데원래 템플릿 쓰던 애들이 가져와서 C++에서 쓰는거다. 구표준까지는 따로였지만, 신표준으로 넘어가면서 '템플릿도 C++이야' 라고 선언하면서템플릿이 C++에 흡수되고, 그걸 표준화시킨게 STL(Standard Template Library)다. 얘는 일반화 프로그래밍이라 타입을 정할 수 없다. 1. C++에는 2가지 템플릿이 있다.1. 템플릿 함수(외부함수를 템플릿으로 만들겠다 이거야)2. 템플릿 클래스 VS 01_ 코드참고)
[C++] #include <string> 직접 구현!
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816..
[C++] friend와 Operator Function
C++의 friend와 인간관계에서의 friend는 다르다. 강사님은 지금부터 나의 모든 것을 사용할 수 있다. ==> C++의 friend는 한쪽 방향(접근 제어자의 의미가 사라진다, 모두 public으로 인식) friend는 일방적이다. (노트필기할것) friend 선언은 3개가 있다. friend의 종류 1. friend class 2. friend method(특정 메소드에만 친구가 된다, 다른 메소드는 원래 의미 그대로) - 쓰는 걸 본 적이 없다 3. friend function(외부 함수를 말한다, 밖에 있는 함수를 친구로 지정) 3 -> 1-> 2순으로 많이 쓴다 friend는 많이 쓰면 좋을까? friend는 객체지향의 특징인 캡슐화를 파괴한다 하지만 문법적으로는 캡슐화 파괴가 맞다 개념..
[C++] Stack과 Queue의 Push, Pop 구현
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816..
동적 바인딩 3/14
동적 바인딩실제 접근할 수 있는 범위가 제한적이 꼭 가상함수를 만들어야 하는 것1. 오버라이딩한 2. 소멸 순수 가상함수를 쓰는 이유?야 이거 꼭 만들어라고 명령하는
순수가상함수
c++은 가상함수가 2가지 있다1. 동적바인딩을 했을 때 사용할 수 있는 환경2. 소멸자 정적바인딩을 했을 때 어떤 식으로 짤 건지를 생각할 것순수가상함수 순수 가상 함수를 부모가 갖고 있다는 건, 너 만들어! 만들지 않으면추상 클래스화시키겠다 -> 즉 너도 객체를 만들 수 없게 하겠다
[C++] Dynamic Binding(동적 바인딩)
(review) 상속 : 재사용성, 확장성(내가 가지고 없는 것을 만듦)부모에게 값을 넘길 때 콜론 초기화로 넘겨준다 오버라이딩 : 부모와 자식 간에 똑같은 형태로 존재하는 것동적 바인딩 : 부모가 자식을 접근하는 방식접근 방식은 같은데 cpp에서 돌아가는 내부 구조가 다르다! 상속을 했을 때 개념 2개 정적 바인딩 : 내 거 만들면 내가 쓰는거야 ( 내거 가지고 접근하는 방식 ) 동적 바인딩 : A 타입의 포인터로 B 객체에 접근하는 것 타입이 다르면 에러난다! But, 상속, 정확히 말해서 is-a 관계에서일때 is-a 관계에 있다는 건 하나의 흐름이라고 여겨지기 때문에 부모로 자식에게 접근할 수 있다! 왜 쓰나?사용자 위주접근하는 방식이 정적으로도 동적으로도 쓸 수 있어야 한다, But, 같은 서비..
[C++] Class 간의 상속 연습문제
1. public 상속 관계1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586#include using namespace std; class A { int a1; // 1 넣을 거야protected: int b1; // 2public: int c1; // 3 // setter, getter void setA1(int n) { this->a1 = n; } int getA1() const { return this->a1; } void setB1(int n) { this-..
[C++] 클래스 상속
(포스팅은 저녁에 예쁘게 정리할 예정입니다.) is-a 관계를 설명하기 전에 상속을 배워보자 #CPP은 상속 방식이 3가지다!(Java는 extends 1가지) 접근 지정자를 이용해서 상속받는 방법이 3가지이다 * 상속 방식private 상속protected 상속public 상속 : 그대로 내려오는 것 자바는 여기서 public 상속만 가져왔다 (노트필기 참고) is-a 관계
[C++] Has-a 관계로 구현한 성적관리프로그램
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105#include #include #include using namespace std; class Name { string name;public: Name() { this->name = "noName"; } Name(string name) { this->name = name; } void setName(string name) { this->n..