C++

    명품 C++ 프로그래밍 정리

    명품 C++ 프로그래밍 정리

    https://velog.io/@5p2rs5/series/%EB%AA%85%ED%92%88CPP%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D 시리즈 | 명품CPP프로그래밍 - 5p2rs5.log 실생활에 존재하는 모든 것멤버 변수와 멤버 함수로 구성된다.객체를 구성하는 정의하는 틀, 구성도멤버 변수와 멤버 함수를 선언한다.클래스의 멤버를 외부에 공개하여 다른 클래스가 접근이 velog.io

    2. 함수 호출 시 객체 전달

    '값에 의한 호출'로 객체 전달 '값에 의한 호출' 과정 '값에 의한 호출'로 객체를 전달할 때 문제점 왜 매개 변수 객체의 생성자가 실행되지 않도록 컴파일 되는가? '주소에 의한 호출'로 객체 전달 '주소에 의한 호출' 과정 '주소에 의한 호출'의 특징

    1. 함수의 인자 전달 방식 리뷰

    인자 전달 방식(argument passing) 값에 의한 호출 (call by value) : 호출하는 코드에서 넘겨주는 실인자 값이 함수의 매개 변수에 복사되어 전달되는 방식 주소에 의한 호출 (call by address) : 주소를 직접 포인터 타입의 매개 변수에 전달받는 방식 => 함수 호출 시 배열이 전달되는 경우, 배열의 이름이 전달되므로 자연스럽게 '주소에 의한 호출'이 이루어짐 '값에 의한 호출'과 '주소에 의해 호출'의 특징

    5. auto와 람다식

    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)와 활용

    4. C++ 표준 템플릿 라이브러리(STL)와 활용

    C++는 소프트웨어 개발자에게 유용한 많은 함수와 클래스를 표준 라이브러리로 제공 C++에서 제공하는 표준 템플릿 라이브러리 (STL)의 개요와 활용 표준 템플릿 라이브러리 개요 표준 템플릿 라이브러리(Standard Template Library, STL) : 템플릿으로 작성된 많은 제네릭 클래스와 함수 라이브러리 STL에 포함된 제네릭 클래스와 함수들은 3종류로 분류 컨테이너(container) - 템프릿 클래스 데이터를 저장하고 검색하기 위해 담아두는 자료 구조를 구현한 클래스 ex) 리스트, 큐, 스택, 맵, 셋, 벡터 등 iterator - 컨테이너 원소에 대한 포인터 반복자, 컨테이너의 원소들을 하나씩 순회 접근하기 위해 만들어진 포인터 알고리즘 - 템플릿 함수 컨테이너의 원소에 대한 복사, ..

    2. 다양한 제네릭 함수 만들기

    하나의 제네릭 타입을 가진 겨우 - 두 개의 매개 변수로부터 큰 값 구하기 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. 일반화와 템플릿

    함수 중복의 약점 함수 중복은 편리하지만 약점도 있다 매개 변수 타입만 다른 중복된 myswap() 함수들을 일반화시킨 틀(template)을 만들고, 이 틀로부터 매개 변수 타입을 지정하여 찍어내듯이 myswap() 함수들을 만들어 낼 수 는 없을까? 일반화와 템플릿 선언 탬플릿 (template) : 형판 (국어사전) : 본 떠 찍어내기 위해 만들어진 틀 C++ 에서의 탬플릿 : 함수나 클래스 코드를 찍어내듯이 생산할 수 있도록 일반화(generic) 시키는 도구 - 중복 함수의 일반화 템플릿 함수 (template function) or 제네릭 함수 (generic function) : template 키워드를 이용해서 중복 함수들을 일반화시킨 특별한 함수 - 템플릿 선언과 제네릭 타입 templa..