[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 == (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++ > 디딤돌 C++' 카테고리의 다른 글
[C++ 소스] 성적 클래스 (증감 연산자 중복 정의) (0) | 2016.12.15 |
---|---|
[C++ 소스] 학생 클래스 (== 연산자 중복정의, 클래스 내부에 정의) (0) | 2016.12.14 |
[C++ 소스] 학생 클래스 (== 연산자 중복정의) (0) | 2016.12.14 |
[C++ 소스] 학생 클래스 (연산자 중복정의 하기 전) (0) | 2016.12.14 |
상속과 다형성 실습-학생, 마법학생, 운동학생, 학사학생[C++] (0) | 2016.05.15 |