WIL (Weekly I Learned)
이번주에 배운 것
- 상속
- 부모 클래스의 멤버 변수와 메소드를 자식 클래스가 재사용
- 재사용: 그대로 쓸 수도 있지만 재정의해서 쓸 수도 있다
- 왜 써?
- 다형성 쓸 수 있어서
- 부모 클래스의 멤버 변수와 메소드를 자식 클래스가 재사용
- 캡술화
- 멤버 변수를 직접 변경할 수 없도록 캡슐처럼 껍데기를 둘러싸는 과정
- 왜 써?
- 캡슐 안에서 특정 로직에 따라 멤버 변수가 적절하게 변경되어야 프로그램이 안전할 수 있기 때문
- 해커 공격 혹은 실수 방지를 위한 예외처리
- 다형성
- 왜 써?
- 하나의 함수로 자식들 명령 해주려고 / move (o) , fly swim walk(x)
- 왜 써?
- 가상함수
- 상속 관계에서 부모가 가지고 있는 멤버함수를 자식이 그대로 사용하지 않고 재정의해서 쓰고 싶을 때 그 모의 멤버 함수를 가상함수화 해야 함(virtual 키워드 붙여야 함)
- 재정의 한다는 것 = 오버라이딩(덮어 씌우기) 한다는 것
- 부모 포인터로 자식 가리키는 것 가능
- Animal *ani = new ChildAnimal();
- 소멸할 때도 virtual 붙여줘야 함
- 안붙이면 자식 객체의 소멸자가 불리지 않기 때문!
- 가상함수 테이블은 부모, 자식 모두에게 있음. 명확해지기 위해 가상함수 테이블이 있는 것임
- 오버라이딩 vs 오버로딩
- 오버라이딩: 상속 받았을 때 부모 클래스 함수를 사용하지 않고 다른 기능을 실행할 때 함수를 자식 클래스에 같은 이름, 매개변수로 재정의해서 사용하는 것
- 오버로딩: 같은 이름의 함수에 매개변수를 다르게 사용하여 매개 변수에 따라 다른 함수가 실행되는 것
- 순수 가상 함수 : 함수가 함수로서의 역할은 안하고 껍데기만 빌려 주는 것
- 추상 클래스 : 순수 가상 함수를 가지고 있는 클래스
- 왜 써? 재정의(override) 하게 강제 하려고
- 프로그래머스 lv1
- 두 개 뽑아서 더하기 - vector 배열 중복 제거 사용!
- 배열 중복 제거 출처 [C++] vector 배열 중복 제거 하는 법 (tistory.com)
- 정렬을 한다 : sort
- 연속된 중복 원소를 vector의 제일 뒷 부분(쓰레기 값)으로 보내버린다 : unique
- 중복된 원소들이 모여있는 뒷부분을 삭제한다 : erase
- set int int
- set은 Unique한 원소들을 특별한 순서에 따라 저장하는 컨테이너
- set 안에 한 번 삽입한 데이터는 수정할 수 없음. 하지만 Insert, remove를 통해 삽입 제거 가능
- set은 보통 이진 탐색 트리로 구현되어 있음
- 배열 중복 제거 출처 [C++] vector 배열 중복 제거 하는 법 (tistory.com)
- 이상한 문자 만들기 - 첨엔 공백을 잘라주는 함수를 찾아서 이걸로 어떻게 해보려 하니까 오류 떠서.. 그냥 count 변수 하나 추가해서 count = 0 으로 초기화 시켜주는 식으로 진행
- 문자열 다루기 - isdigit() 라는 함수가 있었음!
if (!isdigit(s[i])) answer = false;
- 두 개 뽑아서 더하기 - vector 배열 중복 제거 사용!
차주에 진행할 것
- 컴퓨터 작동 원리 끝내기
- C++ ~4주차까지 : 개체지향 프로그래밍
- C ~3주차까지 : 포인터배열까지
- Effective C++: ~Chapter 2
- VR Project 출시 직전 마무리
- 커뮤러닝 2기 시작
- 프로그래머스 lv1 마무리
앞으로 진행할 것
- 프로그래밍 면접 이렇게 준비한다
- 트러블 슈팅 경험 정리
- 우아한 Tech - [10분 테코톡] 한주에 하나씩
- 게임 프로그래밍 패턴
'TIL' 카테고리의 다른 글
WIL (22.02.27) (0) | 2022.02.28 |
---|---|
WIL (22.2.20) (0) | 2022.02.22 |
WIL (22.02.06) (0) | 2022.02.06 |
WIL (22.1.30) (0) | 2022.01.31 |
WIL (22.1.23) (0) | 2022.01.24 |
댓글