728x90
#include <iostream>
using namespace std;

class Power
{
    int kick;
    int punch;
public:
    Power(int kick = 0, int punch = 0) { this->kick = kick; this->punch = punch; }
    Power operator+ (Power op2);
    Power& operator+=(Power op2);
    Power operator + (int op2);
    bool operator==(Power op2);
    Power& operator++();
    Power operator++(int x);
    bool operator!();
    void show();
};

Power Power::operator+(Power op2)
{
    Power tmp;
    tmp.kick = this->kick + op2.kick;
    tmp.punch = this->punch + op2.punch;
    return tmp;
}

bool Power::operator==(Power op2)
{
    if (this->punch == op2.punch && this->kick == op2.kick)
        return true;
    else
        return false;
}

Power& Power::operator+=(Power op2) {
    kick = kick + op2.kick; // kick 더하기
    punch = punch + op2.punch; // punch 더하기
    return *this; // 합한 결과 리턴
}

Power Power::operator+(int op2) {
    Power tmp; // 임시 객체 생성
    tmp.kick = kick + op2; // kick에 op2 더하기
    tmp.punch = punch + op2; // punch에 op2 더하기
    return tmp; // 임시 객체 리턴
}

Power& Power::operator++() {
    kick++;
    punch++;
    return *this; // 변경된 객체 자신(객체 a)의 참조 리턴
}

Power Power::operator++(int x) {
    Power tmp = *this; // 증가 이전 객체 상태를 저장
    kick++;
    punch++;
    return tmp; // 증가 이전 객체 상태 리턴
}


bool Power::operator!() {
    if (kick == 0 && punch == 0) return true;
    else return false;
}

void Power::show()
{
    cout << "kick=" << kick << ',' << "punch=" << punch << endl;
}

int main()
{
    cout << "2018305065 전유정" << endl;

    Power a(3, 5), b(3, 5), c;
    c = a + b;        
    cout << "a : "; a.show();
    cout << "b : "; b.show();
    cout << "c : "; c.show();
    cout << endl;
    if (a == b) cout << "두 파워가 같다" << endl;
    else  cout << "두 파워가 같지 않다" << endl;
    cout << endl;

    c = a += b;
    a = c + 3;
    cout << "a : "; a.show();
    cout << "b : "; b.show();
    cout << "c : "; c.show();
    cout << endl;

    b = ++a;
    c = b++;
    cout << "a : "; a.show();
    cout << "b : "; b.show();
    cout << "c : "; c.show();
}

반응형
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기