반응형 정보정리33 [C/C++] C++에 왔으면 C++의 법을 따릅시다 - (2) Effective C++ 3판을 기반으로 작성한 글입니다. C/C++ 항목 3: 낌새만 보이면 const를 들이대 보자! - 함수 반환 값을 상수로 정해 주면, 안전성이나 효율을 포기하지 않고도 사용자의 에러 돌발 상황을 줄이는 효과를 볼 수 있다. - 멤버 함수에 붙는 const 키워드의 역할은 "해당 멤버 함수가 상수 객체에 대해 호출될 함수이다"라는 사실을 알려 주는 것이다. - const 키워드가 있고 없고의 차이만 있는 멤버 함수들은 오버로딩이 가능하다. => C++의 매우 중요한 성질이다. - C++ 프로그램의 실행 성능을 높이는 핵심 기법 중 하나가 객체 전달을 "상수 객체에 대한 참조자(reference-to-const)"로 진행하는 것이다. => 상수 상태로 전달된 객체를 조작할 수 있는.. 2023. 4. 10. [C/C++] C++에 왔으면 C++의 법을 따릅시다 - (1) Effective C++ 3판을 기반으로 작성한 글입니다. C/C++ 선언과 정의, 초기화 - 선언은 코드에 사용되는 '어떤 대상'의 이름과 타입을 컴파일러에게 알려주는 것 => 구체적인 세부사항은 선언에 들어 있지 않다. - 정의는 선언에서 빠진 구체적인 세부사항을 컴파일러에게 제공하는 것 => 객체의 경우 컴파일러가 그 객체에 대한 메모리를 마련해 놓는 부분 => 함수나 함수 템플릿에 대한 정의는 그들에 대한 코드 본문(body)을 제공하는 것 => 클래스 혹은 클래스 템플릿의 경우 그 클래스 혹은 템플릿의 멤버를 넣어 준 결과 - 초기화는 어떤 객체에 최초의 값을 부여하는 과정 => 사용자 정의 타입으로 생성한 객체의 경으, 초기화는 생성자에 의해 이루어진다. - 선언과 정의의 가장 큰 차이는 메모.. 2023. 3. 22. [C/C++] Thread - (1) Thread - 프로세스란, 운영체제에서 실행되는 프로그램의 최소 단위 => 1개의 프로그램을 가리킬 때 보통 1개의 프로세스를 의미하는 경우가 많다. - 과거에는 소비자용 CPU의 경우 1개의 코어를 가지는 것이 대부분이었다. => CPU가 한 번에 한 개의 연산을 수행한다. ==> 동시에 여러 작업을 하기 위해 컨텍스트 스위칭(Context Switching) 이라는 기술을 사용함. - CPU는 한 프로그램을 통째로 쭉 실행시키는 것이 아니라, 각 프로그램을 골라서 차례를 돌며 조금씩 실행시킨다. => 정확히는, CPU는 운영체제가 처리하라고 시키는 명령어들을 실행할 뿐이다. => 어떤 프로그램을 얼마나 실행시킬지, 다음에는 무슨 프로그램으로 스위치 할 지는 운영체제의 스케쥴러(scheduler)가 .. 2023. 2. 15. [C/C++] Callable Callable - 호출 할 수 있는 모든 것을 의미한다. => C++에서는 ()를 붙여서 호출할 수 있는 모든 것을 Callable이라고 정의한다. ex) 함수, 함수 객체(Functor), 람다 함수 등 std::function - Callable 들을 객체의 형태로 보관할 수 있는 클래스 => C에서의 함수 포인터가 진짜 함수들만 보관 가능한 객체라고 한다면, std::function의 경우 함수 뿐만 아니라 모든 Callable 들을 보관할 수 있는 객체다. - function 객체는 템플릿 인자로 전달 받을 함수의 타입을 갖게 된다. => 함수의 타입이란, 리턴값과 함수의 인자들을 뜻한다. ex) std::function 멤버 함수를 가지는 std::function - 멤버 함수들의 경우 멤버 .. 2023. 2. 11. 이전 1 2 3 4 ··· 9 다음 반응형