본문 바로가기

전체 글

(71)
[C++] 6-3 관계 연산자의 오버로드 관계 연산자의 오버로드 관계 연산자(>, =, =(score ob); }; int score::operator>=(score ob)//연산자 함수의 정의 { return kor >= ob.kor && eng >= ob.eng;//0 또는 1을 반환 }; int main() { score ob1(90, 70), ob2(60, 60), ob3(50, 20); if (ob1 >= ob2) cout =(score ob2)의 형태로 실행되고, 0 또는 1의 값으로 반환된다. 참고 1. 장인성 외 5인, (초보자도 쉽게 따라 할 수 있는) C++프로그래밍, 광문각, 2017.02.13
[C++] 6-2 단항 연산자의 오버로드 단항 연산자의 오버로드 데이터 항(오퍼랜드)이 한 개인 단항 연산자(unray operator; ++, - 등)를 멤버 연산자 함수로 오버로드할 때는 멤버 연산자 함수 operator#()는 매개변수를 사용하지 않는다. 연산자 함수의 호출은 연산에 사용된 오퍼랜드가 하게 되며, 그 오퍼랜드만이 포인터 this에 의해 연산자 함수에 암묵적으로 전달된다. 예제1 #include using namespace std; class score { private: int kor, eng; public: score() { kor = 0; eng = 0; } score(int a, int b) { kor = a; eng = b; } void output(int& a, int& b) {//int &a=x, int &b=y..
[C++] 6-1 이항연산자의 오버로드 이항연산자 오버로드 멤버 연산자 함수로 이항 연산자(+, -, *, /)를 오버로드할 때는 멤버 연산자 함수 OPERATOR#()는 가인수를 하나만 가지게 된다. 이때 연산자의 우측에 놓인 객체가 멤버 연산자 함수의 가인수로 전달되며 연산자의 좌측에 놓인 객체가 멤버 연산자 함수를 호출하게 된다. 멤버 함수를 호출하면 그 멤버 함수를 호출한 객체의 시작 주소를 가리키는 포인터 this가 자동적으로 해당 멤버 함수에 전달된다. 따라서 연산자 좌측의 객체가 포인터 this에 의해 멤버 연산자 함수에 암묵적으로 전달된다. 예제 1 #include using namespace std; class score { private: int kor; int eng; public: score() {//인수가 없는 생성자 ..