C++

    정적 멤버 함수(static member variable)

    정적 멤버 class에는 속하지만, 객체 별로 할당되지 않고 클래스의 모든 객체가 공유하는 멤버 즉, 클래스의 모든 객체에 대해 하나의 데이터만 유지됨 #include using namespace std; class Something{ public: static int s_value; }; int Something::s_value = 1024; int main(){ Something s1; cout

    함수 포인터

    정의 함수 포인터: 함수의 주소를 담고있는 포인터 변수 함수 포인터의 기본형태 : int (*ptrFunc) (int a, int b) 반환 데이터 타입: int형, 함수 포인터명: ptrFunc, 매개변수: int a, int b ptrFunc이라는 함수 포인터는 반환데이터 타입을 int형으로 가지며 int형 변수 a와 b를 매개변수로 가진다. 쓰임새 함수 포인터는 다른 함수의 매개변수로 함수를 받고 싶을 때 사용된다. 보통 callback 함수로 사용된다. callback 함수 a함수의 인자로 b함수의 함수 포인터를 넘겨 a함수가 실행 될때, b함수도 실행하게하는 것이다. 주로 라이브러리의 유연성을 제공하기위해 구현된다. 사람마다 원하는 세부기능이 다를 수 있기 때문에 사용자의 함수를 직접작성하여 라..

    함수 오버로딩

    c++ 함수 오버로딩의 개념을 정리해 보았다. 오버로딩이란 함수를 동일한 이름으로 여러 개 선언하는 것을 의미한다. 단 1가지 조건이 붙는다. 조건 1. 파라미터가 달라야 한다. 이때, 파라미터의 수가 같아도 자료형이 다르다면 괜찮다. 반환형만 다른 경우는 함수오버로딩이 되지 않는다. 간단히 정리해 보면 특징 1. 함수의 이름은 같다. 특징 2. 함수의 파라미터 수가 다르거나 수가 같아도 자료형이 다르다면 괜찮다. 특징 3. 함수의 파라미터가 같은 경우, 반환값만 다르다면 함수오버로딩이 되지 않는다. #include using namespace std; int sum (int x, int y){ return x + y; } double sum (double x, double y){ return x + y..