08.25 - TIL

김혁·2025년 8월 25일

TIL

목록 보기
3/84

오늘의 코드카타

다단계 칫솔 판매

  • 추천인을 통한 트리 구조
  • 종료 조건 잘 찾기
    -> 문제 풀이

오늘의 공부

학습한 강의

  • RPC (Remote Procedure Call) 기초
  • Property Replication 기초

정리 노트

오늘의 CS

OOP에 대하여

  • 객체지향 프로그래밍(Object-Oriented Programming)의 약자
  • 프로그램을 객체라는 단위로 나누어 설계하고 구현하는 방법론
  • 객체 = 속성(데이터) + 행동(메서드)

OOP의 4대 특징

  1. 상속 - 기존 클래스를 확장하여 새로운 클래스를 만듬
  2. 추상화 - 중요한 정보만 드러내고, 불필요한 구현은 숨기는 것
  3. 캡슐화 - 데이터와 메서드를 하나의 객체로 묶고, 외부에서 접근을 제한하여 데이터를 보호
  4. 다형성 - 같은 이름의 메서드가 상황에 따라 다르게 동작할 수 있는 것

다형성에 대하여

  • 정적 다형성
    • 컴파일 시점에 어떤 함수가 호출될지 결정됨
    • 함수, 연산자 오버로딩, 템플릿
  • 동적 다형성
    • 런타임 시점에 어떤 함수가 호출될지 결정됨
    • 가상 함수, 오버라이딩

오버로딩 vs 오버라이딩

  • 오버로딩
    • 함수 이름은 같지만, 매개변수가 다름
    • 정적 다형성이기 때문에, 컴파일 시점에 결정됨
  • 오버라이딩
    • 부모 클래스의 함수를 자식 클래스에서 다시 정의
    • 동적 다형성이기 때문에, 런타임 시점에 결정됨
    • virtual + override 키워드 사용

가상 함수 vs 순수 가상 함수

  • 가상 함수
    • 부모 클래스에서 virtual 키워드를 붙여 선언한 함수
    • 자식 클래스에서 재정의를 통해 객체의 실제 타입에 따라 호출되는 함수가 결정됨
    • 반드시 구현이 되어 있어야 함
    • 자식 클래스에서 재정의하지 않아도 그대로 사용 가능
  • 순수 가상 함수
    • 부모 클래스에서 = 0으로 선언하는 가상 함수
    • 함수의 인터페이스만 정의하고 구현은 하지 않는 함수
    • 반드시 자식 클래스에서 구현해야 사용 가능
    • 순수 가상 함수가 하나라도 있으면, 그 클래스는 추상 클래스(객체 생성 불가)가 됨
  • 순수 가상 함수를 구현하지 않았을 때 발생하는 에러
    • 런타임 에러 - pure virtual function call
profile
게임 개발자를 향해..

0개의 댓글