1. 문제

 

2. Book 객체를 활용하는 사례이다.

 

(1) 세 개의 == 연산자 함수를 가진 Book 클래스를 작성하라.

 

 

2. 결과

 

 

 

3. 코드

 


#include <iostream>
#include <string>
using namespace std;

class Book {
	string title;
	int price, pages;
public : 
	Book(string title="", int price=0, int pages=0) {
		this->title = title; this->price = price; this->pages = pages;
	}
	void show() {
		cout << title << ' ' << price << "원 " << pages << " 페이지" << endl;
	}
	string getTitle() { return title; }
	bool operator == (int n) { 
		if( price == n ) return true;
		else return false;
	}
	bool operator == (string n) { 
		if( title == n ) return true;
		else return false;
	}
	bool operator == (Book n) {
		if( title == n.title && price == n.price && pages == n.pages ) return true;
		else return false;
	}
};

int main() {
	Book a("명품 C++", 30000, 500), b("고품 C++", 30000, 500);
	if( a == 30000 ) cout << "정가 30000원" << endl;
	if( a == "명품 C++" ) cout << "명품 C++ 입니다." << endl;
	if( a == b ) cout << "두 책이 같은 책입니다." << endl;
}

 

 

4. 설명

 

 연산자 "=="를 오버로딩하여서 매개 변수가 다른 함수 3개를 구현합니다.

 

매개변수가 int 형일 시 price와 비교를 하도록 구현하고, string 형 일시 title과 비교하도록합니다.

 

또한, Book 클래스와 사용했을 시 tilte, price, pages를 비교하여서 다 같다면 return true;를 아니면 return false;를 해줍니다.

 

 


 

 

 

1. 문제

 

2. Book 객체를 활용하는 사례이다.

 

(2). 세 개의 == 연산자를 프렌드 함수로 작성하라.

 

 

2. 결과

 

 

 

3. 코드

 


#include <iostream>
#include <string>
using namespace std;

class Book {
	string title;
	int price, pages;
public : 
	Book(string title="", int price=0, int pages=0) {
		this->title = title; this->price = price; this->pages = pages;
	}
	void show() {
		cout << title << ' ' << price << "원 " << pages << " 페이지" << endl;
	}
	string getTitle() { return title; }
	friend bool operator == (Book b, int n);
	friend bool operator == (Book b, string n);
	friend bool operator == (Book b1, Book b2);
};
bool operator == (Book b, int n) { 
		if( b.price == n ) return true;
		else return false;
	}
bool operator == (Book b, string n) { 
		if( b.title == n ) return true;
		else return false;
	}
bool operator == (Book b1, Book b2) {
		if( b1.title == b2.title && b1.price == b2.price && b1.pages == b2.pages ) return true;
		else return false;
	}

int main() {
	Book a("명품 C++", 30000, 500), b("고품 C++", 30000, 500);
	if( a == 30000 ) cout << "정가 30000원" << endl;
	if( a == "명품 C++" ) cout << "명품 C++ 입니다." << endl;
	if( a == b ) cout << "두 책이 같은 책입니다." << endl;
}

 

 

4. 설명

 

 (1)번과 같은 기능을 하는 == 연산자 기능을 하는 함수들을 프렌드 함수로 작성하면 됩니다.

 

Book b 변수를 추가적으로 매개변수로 받아서 이용한다는 점과 friend를 붙이는 것 빼고는 구현하는 방법은 똑같습니다.

 

 

+ Recent posts