⚖️ 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의 부호를 반전하지만 이..
💬 C++ 입출력 연산자 오버로딩: 객체도 cin, cout으로 다룰 수 있을까?✅ 1. 우리가 흔히 쓰는 cin, cout은 사실 무엇인가?C++을 배우면서 처음 만나는 기능 중 하나가 바로 cin, cout입니다.int x;cin >> x;cout 이런 코드는 너무 익숙하죠. 그런데 이 안에서 사용된 >>, 기호는 사실 단순한 기호가 아니라 연산자(Operator)입니다.그리고 이 연산자들은 객체 간의 동작을 함수처럼 정의해둔 것입니다.즉,cout 이것은 내부적으로 다음과 같이 함수 호출처럼 작동합니다:operator마찬가지로 cin >> x;는 operator>>(cin, x);가 호출되는 구조입니다.🎯 2. 그럼 왜 오버로딩이 필요할까?이제 우리가 Point라는 좌표 객체를 만든다고 가정해 ..
- Total
- Today
- Yesterday
- 동적계획법
- 알고리즘기초
- 그리디
- 객체지향
- 프로그래밍
- 파이썬코딩
- 알고리즘 문제풀이
- 파이썬
- 문제 풀이
- 그래프 탐색
- 동적 계획법
- python 알고리즘
- 브루트포스
- c++알고리즘
- C++
- 그리디알고리즘
- 문제풀이
- 코딩테스트
- Python
- C++ 알고리즘
- c언어
- 알고리즘
- 백준
- 코딩 테스트
- DP
- dfs
- 인접 행렬
- 코딩
- 문자열처리
- 알고리즘문제풀이
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |