TIL::Today I Learn

[TIL] 20230529

madylin 2023. 5. 30. 16:31
반응형

오늘 공부한 내용📓

- 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