C++/디딤돌 C++

[C++ 소스] 학생 클래스 (== 연산자 중복정의, 교환법칙 적용)

언제나휴일 2016. 12. 14. 15:20
반응형

[C++ 소스] 학생 클래스 (== 연산자 중복정의, 교환법칙 적용)


Program.cpp

Student.cpp

Student.h



//Student.h

#pragma once

#include <iostream>

#include <string>

using namespace std;

class Student

{

    string name;

    const int num;

public:

    Student(int num,string name);

    bool IsEqual(int num)const;

    void View()const;

};

 

bool operator == (const Student &stu, int num);

bool operator == (int num, const Student &stu);



//Student.cpp

#include "Student.h"

Student::Student(int num,string name):num(num)

{

    this->name = name;

}

bool Student::IsEqual(int num)const

{

    return this->num == num;

}

void Student::View()const

{

    cout<<"번호:"<<num<<" 이름:"<<name<<endl;

}

bool operator == (const Student &stu, int num)

{

    return stu.IsEqual(num);

}

bool operator == (int num, const Student &stu)

{

    return stu.IsEqual(num);

}


//연산자 중복 정의 예2

#include "Student.h"

int main()

{

    Student stu(3,"홍길동");

    int num;

    cout<<"번호:";

    cin>>num;

    if(stu == num) //연산 기호 ==를 사용

    {

        cout<<"학생 번호는 "<<num<<"입니다."<<endl;

    }

    else

    {

        cout<<"학생 번호는 "<<num<<"이 아닙니다."<<endl;

    }

    if(num == stu) //연산 기호 ==를 사용

    {

        cout<<"학생 번호는 "<<num<<"입니다."<<endl;

    }

    else

    {

        cout<<"학생 번호는 "<<num<<"이 아닙니다."<<endl;

    }

    stu.View();

    return 0;

}



본문

[디딤돌 C++] 46. 전역 연산자 중복 정의





반응형