본문 바로가기
TIL

WIL (22.02.13)

by imagineer_jinny 2022. 2. 14.

WIL (Weekly I Learned)

 

이번주에 배운 것

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

 

 

차주에 진행할 것

  • 컴퓨터 작동 원리 끝내기
  • 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

댓글