C++ 아이콘 제작자: Darius Dan - Flaticon 얕은 복사 동적 메모리 할당에 대해서 단순한 복사는 얕은 복사를 한다. > 평범하게 디폴트 복사 생성자를 사용한다면 원본 객체로 부터 완전히 1:1로 복사가 된다. 이 때 복사된 객체는 원본 객체와 완전
C++ 아이콘 제작자: Darius Dan - Flaticon 오버로딩 기존 정의되어 있는 것을 사용자가 원하는 것으로 재정의하는 것을 오버로딩이라 한다. 사칙연산 오버로딩경우 리턴을 값으로 리턴해야 한다. >만약 레퍼런스로 리턴을 하면 생각했던 것과 다르게 작업
C++ 아이콘 제작자: Darius Dan - Flaticon단어 그대로 문어가를 감싼다.c++에서 어떤 때때로 기본 자료형을 객체로 사용할 필요할 때가 있다.이 때 wrapper를 사용해 기본 자료형을 객체로 사용이러면 Int라는 객체를 만들어 int형 데이터를 저
C++ 아이콘 제작자: Darius Dan - Flaticon 캐스팅 C언어의 캐스팅은 몇가지 문제점이 있다, >1. 적절하지 않은 방식으로 캐스팅을 해도 오류가 발생하지 않는다. >2. 가독성이 떨어진다. >3. 캐스팅의 의미를 파악하기가 힘들다. 하지만 C++
C++ 아이콘 제작자: Darius Dan - Flaticon 상속 상속을 통하여 객체지향 프로그래밍에서 추구하는 실제 객체의 추상화를 더 효과적으로 할 수 있다. ==> 그렇다고 객체지향으로 프로그래밍을 하자! 가 아닌 활용을 하여 프로그래밍을 하자! 상속
C++ 아이콘 제작자: Darius Dan - Flaticon random c언어의 난수는 내가 보통 생각하던 완전한 무작위 난수가 아닌 의사 난수이다. ==> 기초값으로 이미 정해진 과정에 따라 그냥 만들어진다. > * 보통 시드값을 time(NULL)로 조절
C++ 아이콘 제작자: Darius Dan - Flaticon 함수 객체 함수는 아니지만 함수 처럼 작동하는 객체 Function Object => Functor > 함수 처럼 작동하는 객체 ==> 객체를 함수처럼 작동하게 만든다. >* 이를 위해 operator(
C++ 아이콘 제작자: Darius Dan - Flaticon템플릿을 이용한 기법으로 컴파일러에게 프로그램 코드를 생성하도록 하는 방식==> 컴파일 타임에 연산이 끝나는 프로그래밍 ==> 컴파일 타임에 많은 연산을 하여 런타임의 연산을 줄여준다.타입의 경우 반드시
C++ 아이콘 제작자: Darius Dan - Flaticon예외란? 사람은 실수하기 마련이고 또 컴퓨터는 필요한 자원을 무조건 제공할 수 있는 것은 아니다.이렇게 정상적인 상황에서 벗어난 모든 예외적인 상황들을 예외(exception)이다.c언어에선 문제가 생길만한
C++ 아이콘 제작자: Darius Dan - Flaticon위 예시에서 내가 생각한 것은 A(2)에서 일반 생성자 호출후 임시 객체에 c가 복사되며 복사생성자가 호출될 것을 예상했지만 아니네?사실 굳이 임시 객체 1번 만들고 여기에 복사를 할 필요가 없다.==> 그
C++ 아이콘 제작자: Darius Dan - Flaticonc++에선 직접 얻었던 자원은 직접 해제하지 않으면 프로그램이 끝날 때 까지 존재한다.자원 관리는 어렵다. 사람인지라 깜빡할 수 있고 또 예외를 던지는 throw 아래에 delete가 있으면 예외 전달시 해
std::function C++에서 호출 가능한 모든 것을 Callable이라 한다 > 함수가 아님에도 ()로 호출하는 것도 포함. 모든 Callable들을 객체의 형태로 보관할 수 있는 std::function 클래스. > * function 객체는 템플릿 인자로
C++ 아이콘 제작자: Darius Dan - Flaticon프로그램의 최소 단위는 프로세스 - 보통 1개의 프로그램을 1개의 프로세스로 의미하는 경우가 많다.이 프로세스는 cpu의 코어에서 실행된다.코어에는 Context switching이라는 기술이 있다.프로그램
C++ 아이콘 제작자: Darius Dan - Flaticon균일한 초기화는 생성자를 호출하기 위해 () 대신 {}를 사용하는 것이다.생성자를 호출하려다 함수를 만들어 버리거나 그런 실수를 방지할 수 있다.그런데 ()와 달리 일부 암시적 타입 변환들을 불허한다.==>
C++ 아이콘 제작자: Darius Dan - Flaticonconstexpr 키워드는 객체나 함수 앞에 붙일 수 있는 키워드로 리턴 값을 컴파일 타임에 알 수 있다라는 의미를 전달한다.컴파일 타임에 어떠한 식의 값을 결정할 수 있다면 해당 식을 상수식 (Consta
C++ 아이콘 제작자: Darius Dan - FlaticonC++11부터 decltype에 전달된 식이 괄호로 둘러쌓이지 않은 식별자 표현식(id-expression) 이라면 해당 식의 타입을 반환하는 함수를 제공식별자 표현식이란 변수의 이름, 함수의 이름, enu
C++ 아이콘 제작자: Darius Dan - Flaticon value category C++의 모든 식은 타입과 값 카테고리를 가진다. 아래를 기준을 하여 5개가 있다. >• 정체를 알 수 있는가? 정체를 알 수 있다는 말은 해당 식이 어떤 다른 식과 같은 것
C++ 아이콘 제작자: Darius Dan - Flaticon 템플릿 메타 함수 함수는 아니지만 마치 함수처럼 작동하는 템플릿 클래스를 템플릿 함수라고 한다. 메타? 보통함수는 값에 대해 연산을 하지만 메타 함수는 타입에 대해 연산을 한다. > 실제로 함수가 아니라
C++ 아이콘 제작자: Darius Dan - Flaticon 어떠한 멤버 함수가 있는 타입을 받아 보자 여기서 리턴 타입까지 선택하자 > 이러면 전달받은 T에 func() 이라는 함수가 있어야 하고 리턴 타입이 int형이여야 잘 작동한다. 멤버 함수를 여러개
C++ 아이콘 제작자: Darius Dan - Flaticon optional > - 실행하면 존재하지 않는 키 '4'에 대해서 그냥 아무것도 대응되는 값을 출력안 할 뿐 프로그램은 잘 작동한다. 그러면 key에 대응하는 값이 빈 문자열 and 맵에 key가 존재
C++ 아이콘 제작자: Darius Dan - Flaticon fstream 파일로부터 프로그램에 입력할 수 있도록 도와주는 클래스 파일 생성 > * std::ofstream writefile("test.txt"); ==> 파일에 쓰기용으로 파일을 생성 > * s
C++ 아이콘 제작자: Darius Dan - Flaticon ios_base 스트림의 가장 기초적인 부분이다. 모든 스트림 객체의 공통적인 부분을 의미한다 아래 같은 정보를 관리한다. 서식 정보 > 1. format flag : 입출력 작업들이 어떤 형식으
C++ 아이콘 제작자: Darius Dan - FlaticonC++ 11 부터 표준에 포함된 정규 표현식(regular expression) 라이브러리정규 표현식은 문자열에서 패턴을 찾는데 사용하는데 다음 같은 경우에 매우 유용하게 사용됩니다주어진 문자열이 주어진 규
C++ 아이콘 제작자: Darius Dan - Flaticon rvalue reference C++에서는 rvalue를 레퍼런스로 받을 수 있게 되었다. (임시객체를 받을 수 있다) && 처럼 &를 2번 사용하여 이를 나타낼 수 있다. rvalue 레퍼런스이니 lv
C++ 아이콘 제작자: Darius Dan - Flaticon람다함수 -> \[캡처](매개변수) -> 리턴값 { 함수 몸체 }함수 포인터처럼 많이 사용한다.람다 함수는 익명 함수이기 때문에 정의만 하면 그 자체로 함수 주소를 리턴하고 어떤 임의의 함수 포인터에 람다