hahahia

Operator Overloading(연산자 오버로딩) 본문

Language/C++

Operator Overloading(연산자 오버로딩)

hahahia 2012. 9. 1. 00:52
연산자 오버로딩(Operator Overloading) 이란?
- C++에서 연산자가 하는 일을 함수로 개인의 필요에 맞게 구현한 것.
- operator<연산자> 형태. 이항 연산자의 경우 좌측의 연산자의 피연산자는 호출하는 객체가 될 것이고, 우측의 피연산자는 인수가 된다.


지금 예제에서는 간단히 입력하는 연산자 >> 와 출력하는 << 연산자에 대해서 입출력 오버로딩을 구현해 보았습니다.

/* made by hahahia */

#include <iostream>

#include <string>

using namespace std;

 

class Student{

        friend istream &operator >> (istream &, Student &); /* Operator overloading(input, output) */

        friend ostream &operator << (ostream &, const Student &);

public:

        string getName() const { return Name; } /* Get Function */

        int getNumber() const { return Number; }

private:

        string Name; /* student name, number */

        int Number;

};

 

istream &operator >> (istream & in, Student & stu){

        cout << "student name : ";

        in >> stu.Name;

        cout << "student number : ";

        in >> stu.Number;

        return in;

}

ostream &operator << (ostream & out, const Student & stu){

        out << "Student Name : " << stu.Name << "\n"

               << "Student Number : " << stu.Number << "\n" ;

        return out;

}

int main(){

        Student stu1;

        cout << "input Student Name and Number\n";

        cin >> stu1;

        cout << stu1;

 

        cout << "getFunction Student Name : " << stu1.getName() << "\n"

               << "getFunction Student Number : " << stu1.getNumber() << "\n";

}

 

실행결과



'Language > C++' 카테고리의 다른 글

C++ 상속(inheritance)  (0) 2012.09.01
C++ 포함  (0) 2012.09.01
1주차  (0) 2011.06.27
Class GradeBook Using an Array to Store Grades  (0) 2011.05.25
재귀함수를 이용한 fibonacci  (0) 2011.05.17
Comments