본문 바로가기

::public/C++62

explicit 자신이 원하지 않은 형변환이 일어나지 않도록 제한하는 키워드 class A { public: int num = 1; public: // 1. non explicit A(int n) : num(n) {}; // 2. explicit explicit A(int n) : num(n) {}; void printA(A a) { cout 2023. 7. 6.
const 위치에 따른 의미 메서드 뒤에 const 위치 ; 해당 메서드가 속해있는 클래스의 멤버 변수를 바꾸지 않겠다는 의미 class A { public: int num = 1; public: int getNum() const { int a = 1; a++;// 지역 변수의 변경은 가능 num++;// 클래스의 멤버 변수의 변경은 불가능 return num; } }; 함수의 매개 변수에 const 위치 ; 해당 매개 변수를 함수 내에서 바꾸지 않겠다는 의미 int add(const int a, const int b) { return a + b;// 단순 a와 b를 합한 결과를 반환하기 때문에 굳이 const 의미 없음 } int a = 1; void increase(int b) { b++; cout 2023. 7. 5.
*개념을 항상 생각하고 정리하자! 보호되어 있는 글 입니다. 2023. 6. 22.
(c++11) lambda lambda, 람다 표현식 / 람다 함수. *이름이 없어서 익명 함수라고도 불린다. 코드를 깔끔하게 만들 수 있다. [캡처 블록] (매개변수) -> 리턴 타입 { 본문 } 캡처 블록(생략 가능) : 스코프에 있는 변수를 캡처하는 방식을 지정, 본문에서 그 변수에 접근할 수 있게 만든다. [&] _ 외부의 모든 변수들을 레퍼런스 형태로 캡처 [&var] _ 외부에 정의되어 있는 변수를 레퍼런스 형태로 캡처 [=] _ 외부의 모든 변수를 복사한 값으로 캡처 [=var] _ 외부의 정의되어 있는 변수를 복사한 값으로 캡처 [this] _ 현제 객체를 캡처 [*this] _ 현제 객체의 복사본을 캡처 매개변수(생략 가능) : 람다 표현식에 대한 매개변수 록록. 리턴 타입(생략 가능) : 람다 표현식의 리턴 타입.. 2023. 2. 8.
(C++11) std::move 객체 a 를 b,c 로 복사할 때, a 가 필요없는 경우가 보장되면 복사과정에 대한 비용을 줄일 수 있다. string a = "std::move"; cout 2023. 1. 31.
(C++11) alignas alignas(n) 지정한 수의 배수만큼 구조체가 할당된다.(1 or 2 의 배수로 설정해야함) struct alignas(32) Alignas { int i4;// 4 byte char c[3];// 3 byte short s2;// 2 byte }; Alignas al; cout 2023. 1. 18.