프로그래밍/C++
![[C++] C언어와 다른 C++ 함수(2)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FbBW8wb%2Fbtqy4qlPRGS%2FAAAAAAAAAAAAAAAAAAAAAFJvkGF6qUoJkNJNLSeLCUcy9j1dkAwYgmBMT122yw7w%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1753973999%26allow_ip%3D%26allow_referer%3D%26signature%3DlIMmoGJ2u4DBuVCHcyDEa1FuGUY%253D)
[C++] C언어와 다른 C++ 함수(2)
1. 함수 삭제(delete function) - C++ 11부터 추가된 문법 - 아래 코드의 의미 : int를 인자로 받는 move 함수는 삭제하겠다. - 삭제된 함수를 호출하면 컴파일 시간에 오류가 발생한다. void move(int) = delete; // 함수 삭제 int main() { move(10); // 컴파일 에러 } 1.1 함수를 제공하지 않는 것 vs 함수를 삭제 하는 것 - 함수를 제공하지 않을 경우 => 함수 호출 시 인자의 암시적 형 변환을 통해서 호출 가능한 함수를 찾게 된다. => 데이터 손실이 있을 수 있어 손해 => 해결 방법은 double 타입의 함수를 만들어 대응 => 함수를 선언만 제공한다면 함수 호출 시 링크 에러(link error) 발생 - 함수를 삭제(dele..
![[C++] C언어와 다른 C++ 함수(1)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2F65d2b%2FbtqyTmjKdVS%2FAAAAAAAAAAAAAAAAAAAAAHN-cdy6l4KUWZSprN5qTYyl2JLhT_hULoszhbSAgSUG%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1753973999%26allow_ip%3D%26allow_referer%3D%26signature%3DKujwSPb5P0t4Q86OSaLO7vNovGY%253D)
[C++] C언어와 다른 C++ 함수(1)
1. default parameter - 함수 호출 시 인자를 전달하지 않으면 미리 지정된 인자값을 사용할 수 있다. void move(int x, int y = 0, int z = 0) { } int main() { move(1, 2, 3); move(1, 0, 0); move(1); // 1, 0, 0 move(1, 10) // 1, 10, 0 } - 함수의 마지막 인자부터 차례대로 디폴트 값을 지정해야 한다. void move(int x = 0, int y) { } // error int main() { move(3); // y에 3이 적용될 것인가? } //----- 예시 ------ void t1(int a, int b, int c = 0) { } // ok void t2(int a, int b..
![[C++] 변수(2)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FbMN7NU%2FbtqyQUf7doG%2FAAAAAAAAAAAAAAAAAAAAAJUcBWCa7n_rJ4ITHamBW1ULoFjxZmrr66Dzl9cKJ815%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1753973999%26allow_ip%3D%26allow_referer%3D%26signature%3D3Hx3LDGo3J9Obr1WPdNEVHRhFiI%253D)
[C++] 변수(2)
1. Constexpr - 컴파일 시간 상수를 만드는 새로운 키워드 => 컴파일 시간에 결정되는 상수 값으로만 초기화 할 수 있다. - C++ 11에서 도입된 문법 int main() { const int t1 = 10; // 상수로 만듬 t1 = 20; // error constexpr int t2 = 10; // 상수로 만듬 t2 = 20; // error } 1.1 C언어와 배열의 크기 - C89 (1989년에 표준화된 문법) => 컴파일 시간에 크기를 알 수 있어야 한다. - C99 (1999년에 표준화된 문법) => 배열의 크기로 변수도 가능 => g++은 지원하지만 cl컴파일러는 지원하지 않음 void move(const int n) { int arr[s]; // error - move(10)..
![[C++] 변수(1)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FBmE3k%2FbtqyOUAxJZq%2FAAAAAAAAAAAAAAAAAAAAAO9XxLRDv9XlsBesLfNzWeQ4HfAO3gcgCaEgfygCO-01%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1753973999%26allow_ip%3D%26allow_referer%3D%26signature%3Dp5NqxDMrQXdxCtNXIkBwnbk7yN4%253D)
[C++] 변수(1)
1. C언어와 다른 C++ 변수의 특징 - 함수의 중간에서 선언 가능 - 구조체 사용 시 struct를 표기하지 않아도 된다. - 구조체를 만들 때 멤버를 초기화 할 수 있다. - C++ 11이상 - 2진수 표기법 / 자릿수 표기법 - C에는 없는 새로운 데이터 타입 struct Rect { int x = 0; int y = 0; // 구조체 멤버 초기화 } int main() { if(true) {} int n = 0; // 함수 이후 변수 선언 가능 Rect rt; // C에서의 struct Rect rt; 에서 struct를 빼도 된다. int n1 = 10; // 10진수 int n2 = 0x10; // 16진수 int n3 = 010; // 8진수 int n4 = 0b10; // 2진수 int ..
![[C++] iomanipulator](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FkCxh3%2FbtqyQUFPxrB%2FAAAAAAAAAAAAAAAAAAAAAAh7g1doXn6lHflqqfYTLxQQQq3an7CDsQX2jWKnDYgi%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1753973999%26allow_ip%3D%26allow_referer%3D%26signature%3DtN19%252B4EgXF0orP%252BdVJOj4QodTkA%253D)
[C++] iomanipulator
개념 - 입출력의 형태를 지정하기 위해 사용 - 조정자 함수 또는 조작자 함수 라고 부름 #include #include int main() { int num=10; std::cout