[C++ 소스] 개체 출력자
//Member.h
#pragma once
#include <iostream>
#include <string>
using namespace std;
class Member
{
string name;
const int num;
public:
Member(int num,string name);
int GetNum()const;
string GetName()const;
void View(ostream &os=cout)const;
};
ostream &operator<<(ostream &os,const Member &member); //개체 출력자
ostream &operator<<(ostream &os,const Member *member); //개체 출력자
//Member.cpp
#include "Member.h"
Member::Member(int num,string name):num(num)
{
this->name = name;
}
int Member::GetNum()const
{
return num;
}
string Member::GetName()const
{
return name;
}
void Member::View(ostream &os)const
{
os<<"번호:"<<num<<" 이름:"<<name;
}
ostream &operator<<(ostream &os,const Member &member)
{
member.View(os);
return os;
}
ostream &operator<<(ostream &os,const Member *member)
{
member->View(os);
return os;
}
//Program.cpp
#include <fstream>
using namespace std;
#include "Member.h"
int main()
{
Member *member = new Member(3,"홍길동");
Member member2(4,"강감찬");
cout<<member<<endl;
cout<<member2<<endl;
ofstream of("data.txt"); //출력 파일 스트림 개체 선언
of<<member<<endl; //출력 파일 스트림에 출력
of<<member2<<endl; //출력 파일 스트림에 출력
of.close();
delete member;
return 0;
}
실행 결과
번호:3 이름:홍길동
번호:4 이름:강감찬
data.txt 파일 내용
번호:3 이름:홍길동
번호:4 이름:강감찬본문
'C++ > 디딤돌 C++' 카테고리의 다른 글
[C++ 소스] 최대값 위치 찾기(전역 template 함수) (0) | 2016.12.17 |
---|---|
[C++ 소스] string 클래스 내부 (0) | 2016.12.16 |
[C++ 소스] iostream 클래스 내부 (0) | 2016.12.16 |
[C++ 소스] 성적 클래스 (묵시적 형 변환 연산자 중복 정의) (0) | 2016.12.15 |
[C++ 소스] 동적 배열 클래스 (인덱스 연산자 중복 정의) (0) | 2016.12.15 |