반응형
오늘 공부한 내용📓
- C++
개념 공부
getter, setter
- 멤버 변수에 대한 접근을 제어하는 데 사용되는 함수
- 멤버 변수의 값을 직접 변경하는 것을 방지하고, 멤버 변수의 값을 변경하기 전에 특정 조건을 확인할 수 있음.
- getter
- 멤버 변수의 값을 가져오는 함수
- setter
- 멤버 변수의 값을 설정하는 함수
static member function (정적 멤버 함수)
- 클래스의 객체를 생성하지 않고 클래스 이름만으로 호출 가능
- 객체를 생성하지 않기 때문에, this 포인터 x
- non-static member function 의 경우, 비정적멤버 변수와 정적 멤버변수 둘다 접근 가능하지만, static member function 의 경우 비정적멤버 변수에 접근 시 에러 발생함.
- private 인 경우, static 이라도 클래스 외부에서 사용 불가능
this
- 객체 자신을 가리키는 포인터
- 클래스 멤버 함수에서 사용할 수 있으며, 객체 자신의 멤버 변수나 함수에 접근할 때 사용
함수 공부
for_each
#include <algorithm>
unaryFunction for_each(InputIt first, InputIt last, UnaryFunction f);
- 함수 설명
- first 부터 last 전까지 범위의 인자를 하나씩 f 함수로 전달하는 함수
- [first, last) 라고 표현할 수 있는 듯 하다.
- 인자
- first : 시작 지점
- last : 끝 지점. last의 전까지만 f 함수로 넘어감
- f : 인자를 넘길 함수
- void f (const Type &a); 형식
- 반환값
- f 함수 형식
- f 함수의 리턴값은 무시됨
mem_fun_ref
#include <functional>
template< class Res, class T >
std::mem_fun_ref_t<Res,T> mem_fun_ref( Res (T::*f)() );
- 함수 설명
- 참조 인수를 사용하여 초기화할 때 멤버 함수에 대한 함수 개체 어댑터를 생성하는 데 사용되는 도우미 템플릿 함수.
- for_each 함수에 전달되는 f 함수는 f(a) 의 형식이여야 하나, 객체나 참조인 경우는 a.f() 형식이기 때문에 컴파일 에러 발생됨.
- 이를 해결하기 위하여 mem_fun_ref 함수를 사용해서, a.f() → f(a) 형식으로 변경하여 사용할 수 있도록 함.
- c++ 17 버전에서 삭제됨.
- 인자
- f : 함수 개체로 변환할 T 클래스의 멤버 함수 포인터
- 반환값
- mem_fun_ref_t 형식의 함수 개체
어려웠던 내용😢
- 함수 공부의 mem_fun_ref 함수에 대한 이해가 좀 어렵게 느껴졌다. cppreference 에서도 친절하게 개념을 설명해주지도 않고, 용어 자체가 cpp린이에게는 어려웠던! 개념 설명 보다 예제를 보며 파악하였다.
궁금한 내용 / 부족한 내용🧐
- 42seoul cpp00 ex02 문제 해결을 위해 static member function 에서 비정적멤버 변수를 접근하는 방법에 대해 더 공부하여야 할 것 같다.
제가 공부한 내용을 기록하고 있습니다.
혹시 수정이 필요한 부분이 있다면, 댓글로 지적 부탁드립니다!
선한 관심과 도움 감사드립니다😊
반응형
'TIL::Today I Learn' 카테고리의 다른 글
[TIL] 20230616 (0) | 2023.06.17 |
---|---|
[TIL] 20230601 (0) | 2023.06.02 |
[TIL] 20230531 (0) | 2023.06.01 |
[TIL] 20230530 (0) | 2023.05.31 |
[TIL] Description (0) | 2023.05.30 |