C++/디딤돌 C++

[C++ 소스] 학생 클래스 (== 연산자 중복정의, 클래스 내부에 정의)

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

[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==(int num)const;

};

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 Student::operator == (int num)const

{

    return IsEqual(num);

}

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

{

    return stu.IsEqual(num);

}


//Program.cpp

#include "Student.h"

int main()

{

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

    int num;

    cout<<"번호:";

    cin>>num;

    if(stu == num) //멤버 메서드 operator == 를 호출

    {

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

    }

    else

    {

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

    }

    if(num == stu) //전역에 정의한 operator == 호출

    {

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

    }

    else

    {

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

    }

    stu.View();

    return 0;

}



본문

[디딤돌 C++] 47. 클래스에 연산자 중복 정의





반응형