23-05

Sandy·2024년 3월 6일

[Today I Learned]

목록 보기
5/18

230503_AIW, op overloading

어제 : -

오늘 : Vector 구현하기

이슈 : 메모리 관리 어떻게 하는지 공부하기

Vector 구현하기

사이즈 부족하면 2배해서 다 옮기고 원래 arr 지우고 포인터 이동하기

전위 / 후위 오버로딩

전위 : & 이용해서 바로 값 바꾸기, .ref 타입 반환한다

후위 : 임시 객체 만들어서 값 리턴하고 원래 객체 ++하기, value를 반환한다

Lvalue / Rvalue

l : &해서 접근할 수 있는 값

r : 상수, 접근 못하는 값, 임시값, &&

앞 const / 뒤 const 의미차이

const iterator operator++(int) const

앞 : 리턴하는 iterator 가 const

뒤 : iterator의 클래스 멤버 변수가 값이 const / const 함수만 호출하기

230504_AIW,const

어제 : vector, iterator 구현하기

오늘 : vector, iterator 구현하면서 c++ 문법 이해하기

이슈 : const 학습하면서 chatgpt 신뢰도가 낮다고 느꼈다

constant member function

getter property 수정 안한다

constant parameter

parameter 변경 X, 복사 X

constant return value

return 하는 타입이 const이다

constant iterator

iter를 이용해서 이동만 하고 값 변경 안된다

230508_AIW,this

어제 : win32api 프로젝트 발전과정 재생목록을 쭉 봤다.

오늘 : list / map 구현하기 / 프레임워크 프로젝트 만들고 따라 쳐보기

이슈 : svn에 프로젝트 공간 만들기 → git에 임시 공간 만들고 브랜치 나누기

this

클래스에서 자기 자신을 가리키는 포인터 변수이다

Default Argument for Member Function

객체가 멤버 함수를 쓸 때 기본 인자로 자신의 주소를 넣는다

Method Chaining

*this를 method가 return하게 해서 하나의 instance에서 method를 연속적으로 쓸 수 있게 만든다

230509_AIW

어제 : vector 구현 → rval, lval, const, &에서 열심히 삽질했다 / TimeMgr.h

오늘 : TimeMgr.cpp 구현하기 / TimeMgr 기능 이해하기

이슈 : 벡터, 리스트, map 구현 목적이 문법 이해가 아니라 각 기능이 동작하는 최소 부분을 만들어야 겠다.

230510_AIW,VirtualFunction

어제 : TimeMgr.cpp 구현하기 / TimeMgr 기능 이해하기

오늘 : TimeMgr 설명하기 / 프레임워크 다른 부분 이해하기

이슈 : 기존 프레임워크 + 루카스 자료 프레임워크 참고하고 있다

Virtual Function

virtual이라는 키워드가 붙은 함수이다. derived에서 override해서 쓴다

객체의 타입에 맞게 구현된 함수를 불러서 사용할 수 있도록 한다

상위 클래스에서 정의된 함수를 하위 클래스에서 다시 정의할 수 있다

→ 객체의 실제 타입이 런타임에 결정된다

Pure Virtual Function (= 0)

virtual function만 있는 것이다

구현이 없이 선언만 한 것이다 → instantitate 못한다

클래스를 상속하면 어떤 함수들이 꼭 들어갈지 강제한다

Interface

pure virtual function만 있어서 상속하면 구현해야 하는 것들을 강제한다

→ polymorphically 하게 만드는데 function signature를 같게 만든다

Abstract class

virtual function pure virtual function이 하나라도 있는 클래스이다

0개의 댓글