2. 함수 호출 시 객체 전달
·
C++/[책 정리] 명품 C++ 프로그래밍
'값에 의한 호출'로 객체 전달 '값에 의한 호출' 과정 '값에 의한 호출'로 객체를 전달할 때 문제점 왜 매개 변수 객체의 생성자가 실행되지 않도록 컴파일 되는가? '주소에 의한 호출'로 객체 전달 '주소에 의한 호출' 과정 '주소에 의한 호출'의 특징
1. 함수의 인자 전달 방식 리뷰
·
C++/[책 정리] 명품 C++ 프로그래밍
인자 전달 방식(argument passing) 값에 의한 호출 (call by value) : 호출하는 코드에서 넘겨주는 실인자 값이 함수의 매개 변수에 복사되어 전달되는 방식 주소에 의한 호출 (call by address) : 주소를 직접 포인터 타입의 매개 변수에 전달받는 방식 => 함수 호출 시 배열이 전달되는 경우, 배열의 이름이 전달되므로 자연스럽게 '주소에 의한 호출'이 이루어짐 '값에 의한 호출'과 '주소에 의해 호출'의 특징
5. auto와 람다식
·
C++/[책 정리] 명품 C++ 프로그래밍
auto를 이용한 쉬운 변수 선언 auto 키워드는 C++11 표준부터 의미가 수정되어, 변수 선언문으로부터 변수의 타입을 추론하여 결정하도록 지시한다. auto는 복잡한 형식의 변수 선언을 간소하게 해주며, 타입 선언의 오타나 번거로움을 줄일 수 있게 한다. - 기본 사례 auto pi = 3.14;// 3.14가 실수이므로 pi는 double 타입으로 선언됨 => auto를 이용하여 변수 pi를 실수 3.14로 초기화하는 선언문 auto n = 3;// 3이 정수이므로 n을 int로 선언 auto *p = &n;// 변수 p는 int* 타입으로 자동 선언 => 컴파일러 3.14로부터 추론한 결과 pi를 dobule 타입으로 결정 int n = 10; int &ref = n;// ref는 int에 대한..
4. C++ 표준 템플릿 라이브러리(STL)와 활용
·
C++/[책 정리] 명품 C++ 프로그래밍
C++는 소프트웨어 개발자에게 유용한 많은 함수와 클래스를 표준 라이브러리로 제공 C++에서 제공하는 표준 템플릿 라이브러리 (STL)의 개요와 활용 표준 템플릿 라이브러리 개요 표준 템플릿 라이브러리(Standard Template Library, STL) : 템플릿으로 작성된 많은 제네릭 클래스와 함수 라이브러리 STL에 포함된 제네릭 클래스와 함수들은 3종류로 분류 컨테이너(container) - 템프릿 클래스 데이터를 저장하고 검색하기 위해 담아두는 자료 구조를 구현한 클래스 ex) 리스트, 큐, 스택, 맵, 셋, 벡터 등 iterator - 컨테이너 원소에 대한 포인터 반복자, 컨테이너의 원소들을 하나씩 순회 접근하기 위해 만들어진 포인터 알고리즘 - 템플릿 함수 컨테이너의 원소에 대한 복사, ..
3. 제네릭 클래스 만들기
·
C++/[책 정리] 명품 C++ 프로그래밍
2. 다양한 제네릭 함수 만들기
·
C++/[책 정리] 명품 C++ 프로그래밍
하나의 제네릭 타입을 가진 겨우 - 두 개의 매개 변수로부터 큰 값 구하기 template T bigger(T a, T b) // 두 개의 매개 변수를 비교하여 큰 값을 리턴 #include using namespace std; template T bigger(T a, T b) { // 두 개의 매개 변수를 비교하여 큰 값을 리턴 if(a > b) return a; else return b; } int main() { int a=20, b=50; char c='a', d='z'; cout
1. 일반화와 템플릿
·
C++/[책 정리] 명품 C++ 프로그래밍
함수 중복의 약점 함수 중복은 편리하지만 약점도 있다 매개 변수 타입만 다른 중복된 myswap() 함수들을 일반화시킨 틀(template)을 만들고, 이 틀로부터 매개 변수 타입을 지정하여 찍어내듯이 myswap() 함수들을 만들어 낼 수 는 없을까? 일반화와 템플릿 선언 탬플릿 (template) : 형판 (국어사전) : 본 떠 찍어내기 위해 만들어진 틀 C++ 에서의 탬플릿 : 함수나 클래스 코드를 찍어내듯이 생산할 수 있도록 일반화(generic) 시키는 도구 - 중복 함수의 일반화 템플릿 함수 (template function) or 제네릭 함수 (generic function) : template 키워드를 이용해서 중복 함수들을 일반화시킨 특별한 함수 - 템플릿 선언과 제네릭 타입 templa..
9. 바람직한 C++ 프로그램 작성법
·
C++/[책 정리] 명품 C++ 프로그래밍
Reference : 명품 C++ 프로그래밍 / 황기태 / 생능출판사