🔼 C++ 증감 연산자 오버로딩✅ 1. 증감 연산자란?C++에서 자주 쓰이는 ++, -- 연산자는 다음 두 가지 방식으로 사용됩니다.전위(prefix)++a; // 먼저 증가시킨 후, 그 결과값을 사용후위(postfix)a++; // 원래 값을 사용한 후, 나중에 증가시킴예를 들어:int a = 3;int b = ++a; // b = 4, a = 4int c = a++; // c = 4, a = 5❓ 왜 전위/후위를 나눠야 하나요?사용자 정의 클래스에서도 ++를 쓰고 싶을 때,컴파일러는 ++의 위치에 따라 다른 동작을 기대합니다.하지만 컴파일러 입장에서 둘 다 operator++()로 보이기 때문에전위/후위를 명확히 구분해서 정의하지 않으면 오류나 예기치 않은 동작이 발생합니다.🎯 해결: ..
⚖️ C++ 비교 연산자 오버로딩: 객체를 ==, 등으로 비교하려면?✅ 1. 기본 자료형은 비교가 된다int a = 3, b = 5;if (a 이처럼 int, double 같은 기본 자료형은==, , !=, > 등의 비교 연산자를 기본적으로 사용할 수 있습니다.❌ 2. 사용자 정의 자료형은 비교가 안 된다이제 Point라는 클래스를 만들었다고 해봅시다.class Point {public: int x, y;};Point p1(1, 2), p2(1, 2);if (p1 == p2) { /* 같은지 판단 */ } // ❌ 오류 발생 error: no match for ‘operator==’즉, 클래스는 자동으로 비교할 수 없습니다.C++은 Point라는 객체가 “같다”는 것이 무엇을 기준으로 정의되는..
🔷 C++ 단항 연산자 오버로딩: 객체 하나에 작동하는 연산 정의하기✅ 1. 단항 연산자란 무엇인가요?단항(unary) 연산자는 피연산자 하나에만 작동하는 연산자입니다.-a // 단항 부호 반전!a // 논리 부정~a // 비트 반전C++에서는 기본 자료형(int, double 등)에 대해서는 이런 연산자들이 자동으로 정의되어 있지만,우리가 직접 만든 클래스 객체에는 이 연산자들이 기본적으로 적용되지 않습니다.🎯 2. 왜 단항 연산자 오버로딩이 필요한가요?아래와 같은 Point 클래스를 생각해봅시다.class Point {public: int x, y;};다음과 같이 쓰고 싶습니다:Point p(3, 4);Point q = -p; // x, y의 부호를 반전하지만 이..
- Total
- Today
- Yesterday
- 알고리즘문제풀이
- 인접 행렬
- 동적계획법
- C++ 알고리즘
- 파이썬
- c언어
- 파이썬코딩
- 문제 풀이
- 코딩테스트
- 동적 계획법
- 알고리즘 문제풀이
- 그래프 탐색
- 객체지향
- 프로그래밍
- 알고리즘기초
- 문제풀이
- 코딩
- C++
- c++알고리즘
- 알고리즘
- 문자열처리
- Python
- 그리디알고리즘
- 브루트포스
- 백준
- 그리디
- DP
- dfs
- 코딩 테스트
- python 알고리즘
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 |