일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |
- yolo
- 인간이 그리는 무늬
- 성화봉송주자
- 평창동계올림픽
- 창훈쓰다
- upper_bound
- 안드로이드 스튜디오
- BFS
- 다음 API
- 다이나믹 프로그래밍
- 외판원 순회
- 생활코딩
- BOJ 2098
- boj
- 언어의 온도
- 삼성 코딩테스트
- 위상정렬
- 비트마스크
- lower_bound
- 백트레킹
- MST
- 다음 지도 api
- multiset
- DP
- 성화봉송
- 그리디 알고리즘
- 캘리그라피
- 이분탐색
- 영어회화 100일의 기적
- Segment Tree
- Today
- Total
목록2018/12/20 (6)
Hoon222y
상속 : 기존 클래스를 재사용하여 새로운 클래스를 작성하는 것을 의미한다. 상속을 하는 주체를 부모 클래스하고 하고, 상속을 받는 주체를 자식클래스 라고 한다. 이때 상속되지 않는것은 : 생성자, 소멸자 , 대입연산자 , 정적멤버, friend 함수이다. 상속을 하려면 class 클래스명 : public 클래스명 으로 사용한다. 그렇다면 상속에서 생성자와 소멸자는 어떻게 작동하는지 알아보자. 123456789101112131415161718#include using namespace std; //상속 관계에서 생성자와 소멸자의 호출 순서//자식 생성자-> 부모 생성자 -> 자식 생성자 -> 자식 소멸자 -> 부모 소멸자class Parent{public: Parent(){ cout
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768//rule of 3//1. 복사 생성자 2. 소멸자 3. 대입연산자//대입 연산자 오버로딩 #include using namespace std; class Person{ char *name; int age;public: Person() :name(0), age(0){} Person(const char * n, int a) : age(a){ name = new char[strlen(n) + 1]; strcpy(name, n); } //만약 클래스 내부에서 동적 할당된 자원이 있다면..
12345678910111213141516171819202122232425262728293031323334353637383940414243444546//첨자 연산자 오버로딩#include using namespace std; class IntArray{ int* buf; int size;public: IntArray(int sz = 10): size(sz){ buf = new int[size]; } int length() const{ return size; } //아래의 코드가 동작될 수 있도록 함수를 변경하라.(리턴 타입을 int에서 int&로 바꿈) //첨자 연산자를 반환할 때는 참조 타입을 반환해야 하는데 그 이우는 값의 대입(=) 때문이다. int& operator[](int idx){ //이 함..
연산자 오버로딩 : 클래스에 대한 연산자를 정의하여 t3 = t2+t1; 처럼 객체끼리 연산할 수 있도록 만드는 문법이다. 12345678910111213141516171819202122232425262728293031#include using namespace std;class Int32{ int v;public: Int32(int val = 0) : v(val){} void print() const{ cout
123456789101112131415161718192021222324252627282930#include using namespace std;//mutable : 상수 멤버 함수 안에서 값의 수정을 가능하게 하는 키워드struct Cache{ mutable char str[32]; mutable bool is_cached; Cache(bool cached = false) : is_cached(cached){}};class Point{public: int _x, _y; Cache* pCache; Point(int x, int y) : _x(x), _y(y), pCache(new Cache){}; ~Point(){ delete pCache; } //동적할당 했으니 소멸자로 해제해준다. const char*..
상수 멤버 함수 : 함수 내부에서 멤버 변수의 값을 수정할 수 없는 함수를 말한다. 멤버 변수를 읽기만 하고 변경하지 않는다면 const 지정자를 붙여 상수 함수로 선언하면 된다. const 지정자를 함수명 뒤에 붙인다. 사용방법 : 리턴타입 함수명 ([매개변수, ...]) const 1234567891011121314151617181920212223#include using namespace std;class Point{public: int _x, _y; Point(int x, int y) : _x(x), _y(y){}; void set_x(int x){ _x = x; } void print() const { //이 안에서 상태값이 변경되지 않는다는 보장을 해주기 위해서 함수 뒤에 const를 붙인다...