본문 바로가기

<개인공부>195

[C++] 멤버 초기화 리스트 (member initializer lists) 안녕하세요. BlockDMask 입니다. 오늘은 C++ 멤버 초기화 리스트 라는 주제로 이야기를 해보려합니다. 1. 멤버 초기화 리스트란? 2. 멤버 초기화 리스트를 꼭 사용해야하는 경우 1. C++ member initializer lists (멤버 초기화 리스트) 일단 멤버 초기화 리스트 사용방법은 아래와 같습니다. 1. 멤버 초기화 리스트는 생성자 괄호() 뒤에 콜론(:)으로 표기합니다. 2. 초기화 할 멤벼 변수들을 쉼표로 구분하여 표기합니다. 3. 이때 소괄호() 를 이용해서 멤버 변수를 초기화 합니다. (C++11 이후 부터는 중괄호 초기화, 유니폼 초기화가 가능합니다.) 실제 코드에서 확인해보겠습니다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 #include #i.. 2021. 2. 19.
[C++] nullptr (널 포인터 리터럴) 안녕하세요. BlockDMask입니다. 오늘은 C++11에서 도입된 새로운 키워드 nullptr에 대해서 이야기해보려 합니다. 기존 C언어, C++을 사용하시는 많은 분들이 0, NULL 이렇게 널을 사용하셨을 텐데요. C++11부터는 nullptr을 사용하시면 좋을 것 같습니다. 1. C++ nullptr 이란? 2. C++ NULL, nullptr의 차이점 1. C++11 nullptr 설명 모든 변수에는 초기화하는 방법이 있습니다. 기존 C, C++에서는 포인터를 초기화할 때 0을 이용해서 초기화를 하였는데요. C++11부터는 nullptr을 가지고 초기화를 하시면 됩니다. 1-1) nullptr nullptr을 한 줄로 말하자면 널 포인터 값(null pointer value)을 나타내는 포인터 .. 2021. 2. 17.
[C++] 디폴트 매개변수 (default parameter) 안녕하세요. BlockDMask입니다. 오늘은 C++의 편리한 문법 디폴트 매개변수, 디폴트 파라미터, default paramter에 대해서 알아보려고 합니다. 1. default parameter 정리 2. default parameter 주의할 점 1. C++ 디폴트 매개변수, 디폴트 파라미터란? - 디폴트 매개변수? 한 문장으로 정리를 하면 함수 호출 시 인자를 넣지 않으면, "미리 정해준 인자 값"이 대신 들어가게 됩니다. 아 물론. 반대로, 인자로 값을 넣게 되면 "미리 정해둔 인자 값"이 아니라 지금 넣는 인자가 들어가게 됩니다. 디폴트 매개변수는 함수의 인자에 "= 값" 을 사용해서 값을 정해줄 수 있습니다. 들어온 숫자를 더해서 출력하는 함수 void addNum(int a, int b).. 2021. 2. 15.
[C++] constexpr 상수 안녕하세요. BlockDMask 입니다. 오늘은 C++11 부터 나온 contexpr 이라는 것에 대해서 알아보려고 합니다. const 와 비슷하게 상수를 만들어 주는 또 다른 키워드 constexpr 이 무엇인지 한번 알아보겠습니다. C++ const, constexpr (constexpr 은 C++11에 처음 나왔으며 C++14 에서 개선됨 어짜피 현재는 2021년이기 때문에 C++11이든 14이든 예전에 생긴 문법입니다.) constexpr 이란. 컴파일 시간 상수를 만드는 키워드 컴파일 시간에 결정되는 상수 값으로만 초기화 할 수 있다. constexpr이 변수를 상수로 만들어 준다고 하는데 그럼 const와 똑같은데 무슨 차이가 있나요? 라고 질문 하실 수 있는데, 좀 더 상세하게 상수에 대해서.. 2021. 2. 11.
[C++] 인라인 함수 (inline function) 안녕하세요 BlockDMask 입니다. 오늘은 C++의 inline 함수에 대해서 알아보겠습니다. inline function이란? 인라인 함수 inline function? 함수 반환 타입 앞에 'inline"을 표기한 함수 inline 반환형 함수이름 ( 매개변수 ) 이렇게 함수 이름앞에 inline을 붙이면 일반 함수와 달리, 프로그램이 생성될때 함수가 치환되어 생성됩니다. 아래 예제에서 간단하게 예시를 들어보겠습니다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 #include int add1(int a, int b) { return a + b; } inline int add2(int a, int b) { return a + b;.. 2021. 2. 10.
[C++] 2진수 8진수 16진수 표기법, 자릿수 표기법 안녕하세요. BlockDMask입니다. C++에서 정수를 표현할 때 진수를 표현하는 방법과 자릿수를 표기하는 방법에 대해서 알아보겠습니다. 1. 8, 16, 2진수 표기법 2. 자릿수 표기법 1. C++ 2진수, 8진수, 16진수 표기법 - C++ 2진수 표기 "0b숫자(2진수)" 2진수로 표기하는 것은 C++ 11에서부터 가능합니다. 표기하고자 하는 숫자 앞에 숫자 0과 알파벳 b "0b"를 붙이게 되면 2진수로 표기가 됩니다. 0b 뒤에 오는 숫자는 2진수로 표현된 숫자 이어야 합니다. 즉 0b1010, 0b10 등 0과 1로 이루어진 2진수 이어야 하는 것입니다. - C++ 8진수 표기 "0숫자(8진수)" 8진수로 표기하려 하면 숫자 0을 붙이면 됩니다. 0 뒤에 오는 숫자는 8진수로 표기된 숫자 .. 2021. 2. 9.
[C++] std::setw, std::setfill, std::left, std::right (입출력 형태 지정2) 안녕하세요. BlockDMask 입니다. 지난시간에 이어서 오늘도 조정자 함수 io manipulator 들에 대해서 알아보려고합니다. 오늘은 왼쪽 정렬을하는 std::left, 오른쪽 정렬을하는 std::right, 출력시 개수를 지정하는 std::setw, 빈 공간을 채우는 std::setfill 함수. 이렇게 총 4개의 함수에 대해서 알아보겠습니다. 1. C++ std::setw, std::setfill 함수 설명 2. C++ std::left, std::right 함수 설명 1. std::setw, std::setfill 함수 설명 - 헤더파일 - std::setw 함수 std::setw(n) 출력시 길이를 n으로 지정. std::setw 출력에 사용할 필드의 넓이를 설정합니다. 즉 가로길이를 지.. 2021. 2. 5.
[C++] 8진수, 10진수 16진수 출력 (입출력 형태 지정 1) 안녕하세요. BlockDMask 입니다. 오늘은 C++ 표준 입출력에서 출력을 할때 진수를 지정해주는 것에 대해서 알아보려고 합니다. 1. C++ 8진수, 10진수, 16진수 출력 방법 2. C++ 8, 10, 16 진수 출력 예제 1. C++ 8진수, 10진수, 16진수 출력 방법 - 8진수 출력 std::oct 변수의 값을 8진수의 형태로 출력해주는 함수 입니다. int n = 9; std::cout 2021. 2. 4.
[C++] 표준 입출력 std::cin, std::cout 정리 및 예제 안녕하세요. BlockDMask 입니다. 오늘은 C++ 표준 출력인 cout 에 대해서 알아보겠습니다. 1. std::cout 기본 설명 2. std::cin 기본 설명 3. std::cin, std::cout 예제 1. C++ 표준 출력 cout 기본 설명 - 헤더파일 - C++ cout 기본 설명 C++의 표준 출력은 std::cout 을 이용합니다. std::cout을 딱 보았을때 한가지 알아두셔야 할것은 "std::" std 네임스페이스에 속해 있다는 것 입니다. cout 이름만 보아도 무언가를 출력하겠구나 하시겠죠? out 이니까? cout은 쉬프트 연산자 2021. 2. 2.
[C++] namespace 네임스페이스 정리 및 예제 안녕하세요. BlockDMask입니다. 오늘은 C++의 namespace 이름 공간에 대해서 알아보려고 합니다. C언어에서는 없던 새로운 개념인데요, 한번 천천히 자세하게 알아보겠습니다. 1. namespace 란? 2. namespace의 요소에 접근하는 방법 5가지 3. C++ 표준 이름공간 std 1. C++ namespace 란? 하나의 프로그램을 만들다 보면 여러 파일이 생성되고, 여러 개발자가 붙어서 개발을 하다 보면 함수나 구조체 등에서 이름이 같은 경우가 생기게 됩니다. 이런 경우 함수의 이름이나 구조체의 이름 그리고 당연하게도 변수의 이름이 같아지게 되면 이름 충돌이 발생하여 오류가 발생하게 됩니다. 이런 충돌이 발생하지 않기 위해 만들어진 것이 namespace라는 개념입니다. 쉽게 이.. 2021. 2. 1.