본문 바로가기

C++5

[Effective C++] EC++ 정리하기 - Chapter 2 생성자, 소멸자 및 대입 연산자 (1) 오늘 정리할 내용은 Effective C++의 Chapter 2 전반부(5~8번 항목)이다. 항목 5: C++가 은근슬쩍 만들어 호출해 버리는 함수들에 촉각을 세우자별도로 우리가 기본 생성자, 복사 생성자, 복사 대입 생성자, 소멸자를 선언하지 않으면 public, inline 함수로 컴파일러가 자동 선언해버린다. 이점을 주의해야 한다.// 우리가 작성한 코드class Empty {};// 실제 컴파일러에서 만들어 지는 코드class Empty { public: Empty() { ... }; // 기본 생성자 Empty(const Empty& rhs) { ... }; // 복사 생성자 ~Empty{ ... }; // 소멸자 Empty& operator=(const Empty& rh.. 2025. 6. 28.
[Effective C++] EC++ 정리하기 - Chapter 1 C++에 왔으면 C++의 법을 따릅시다 챕터 명: Chapter 1 C++에 왔으면 C++의 법을 따릅시다Chapter 1의 주요 내용을 정리해 보았다. 다만, 너무 장황하게 정리한 것 같아서 다음부터는 좀 더 짧게 정리해 볼 예정.항목 1: C++를 언어들의 연합체로 바라보는 안목은 필수현대의 C++은 다중패러다임 프로그래밍 언어(multiparadigm programming language)라 불린다. 절차적(procedural) 프로그래밍, 객체 지향(object-oriented), 함수식(functional), 일반화(generic) 프로그래밍을 포함하여 메타프로그래밍(metaprogramming) 개념까지 지원하고 있다. 물론 표현력, 유연성 덕분에 C++는 대체할 만한 도구가 없지만 규칙적으로 혼동을 주는 면이 많다. 그래서 아예 .. 2025. 5. 31.
백준 1644번 - 소수의 연속합(C++) 문제백준, 골드 3, 문제 링크풀이 날짜: 2025.05.18풀이 시간: 23:05~00:11사용 언어: C++문제 해설연속된 소수의 합은 2D 테이블로 표현할 수 있다.$ table[i][j] $ = {i번째 소수부터 j번째 소수까지 연속된 소수의 합}(단, 0 ≤ i ≤ j인 정수 i, j)일반적으로 N 이하의 모든 소수에 대해서는 해당 테이블은 평균적으로 sqrt(N) * sqrt(N)의 셀이 존재한다고 알려져 있다.i > 0일 때, $ table[i][j] = table[0][j] - table[0][i-1] $로 나타낼 수 있다. 왜냐하면, 3~5번째의 연속된 소수의 합은 1~5번째 소수 합에서 1~2번째 연속된 소수의 합을 빼면 되기 때문이다. 이런 식으로 계산하면, table의 첫 번째 행만.. 2025. 5. 19.
[Effective C++] EC++ 정리하기 - Prechapter: 독자 여러분 반갑습니다 C++을 공부하면서, 실제로 깊이까지 공부해 본 적은 없다는 생각이 들어 책 'Effective C++'을 읽고 배운 점을 정리하고자 하였습니다. 잘못된 점이나 오류가 있다면 지적 바랍니다.해당 글은 Effective C++을 정리한 내용이지만, 제가 새로 배우거나 느낀 점 위주로 정리하였습니다. 책 자체가 워낙에 잘 쓰여서, 필요하다면 직접 해당 책을 읽어보시길 권장드립니다.이번 글에서는 도입부에서 알아놓고 가면 좋을 것들을 정리했다. 1. 암시적 타입 변환을 막기 위해 생성자는 explicit을 사용하자생성자를 만들 때, 암시적 타입 변환으로 객체를 생성해서 넣기를 바라지 않는 경우가 있다.이 경우, explicit으로 생성자를 만들자.class B {public:  explicit B(int x =.. 2025. 5. 18.
백준 32291번 - x와 x+1의 차이(증명 포함, C++) 문제백준, 실버 1, https://www.acmicpc.net/problem/32291풀이 날짜: 2025.4.15.풀이 시간: 10:49~11:32(43분)사용 언어: C++문제 해설해당 문제는 (x+1)의 자신을 제외한 약수를 구하는 문제이다.우선, 그에 도달하는 과정을 살펴보자.예제 1의 출력을 보면, x = 998일 때 x+1의 자신을 제외한 약수 1, 3, 9, 27, 37, 111, 333이 정답이 된다.이를 보고 출력이 되는 모든 양의 정수 k는 (x+1)의 약수라고 가설을 세울 수 있다.왜 k는 반드시 (x+1)의 약수인가?가설을 세웠으니 증명해 보자.다만 고등학생 때 배웠던 귀류법을 가지고 야매로 증명했다 보니, 정확하지 않을 수 있다는 점 양해 바란다. 잘못된 점이 있다면 지적해주면 .. 2025. 4. 15.