[C++ 소스] 학생 클래스 (== 연산자 중복정의, 클래스 내부에 정의)
//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++ > 디딤돌 C++' 카테고리의 다른 글
[C++ 소스] 동적 배열 클래스 (대입 연산자 중복 정의) (0) | 2016.12.15 |
---|---|
[C++ 소스] 성적 클래스 (증감 연산자 중복 정의) (0) | 2016.12.15 |
[C++ 소스] 학생 클래스 (== 연산자 중복정의, 교환법칙 적용) (0) | 2016.12.14 |
[C++ 소스] 학생 클래스 (== 연산자 중복정의) (0) | 2016.12.14 |
[C++ 소스] 학생 클래스 (연산자 중복정의 하기 전) (0) | 2016.12.14 |