컴공생의 다이어리
[c++] std::ofstream 연산자 오버로딩 본문
#include <fstream>
#include <iostream>
#include <string>
class Human {
std::string name;
int age;
public:
Human(const std::string& name, int age) : name(name), age(age) {}
std::string get_info() {
return "Name :: " + name + " / Age :: " + std::to_string(age);
}
friend std::ofstream& operator<<(std::ofstream& o, Human& h);
};
std::ofstream& operator<<(std::ofstream& o, Human& h) {
o << h.get_info();
return o;
}
int main() {
// 파일 쓰기 준비
std::ofstream out("test.txt");
Human h("홍길동", 23);
out << h << std::endl;
return 0;
}
ofstream 객체의 레퍼런스를 받고, 다시 이를 리턴하는 operator<<함수를 정의해주면 된다.
728x90
반응형
'Development > C & C++' 카테고리의 다른 글
[c++] class 상속(private, protected, public) (0) | 2021.01.03 |
---|---|
[c++] 문자열 스트림 (std::stringstream) (0) | 2021.01.03 |
[c++] 파일에 쓰기 (0) | 2021.01.03 |
[c++] 파일 전체 읽기 (0) | 2021.01.03 |
[c++] 파일 입출력 (0) | 2021.01.03 |
Comments