(19080)
COUT 클래스를 만들어 정수, double, 그리고 스트링을 출력할 수 있게한다.
COUT클래스 내부에서는 출력을 위해 printf를 사용한다.
<COUT1.cpp>
#include <iostream>
class COUT{
public:
COUT():data_(0){}
int getValue() { return data_; }
COUT operator<<(COUT i){
printf("%d\n", getValue());
}
COUT operator<<(double d){
printf("%f\n",d);
}
COUT operator<<(std::string s){
std::cout<<s<<std::endl; //??
}
private:
int data_;
};
int main(){
COUT cout;
cout<<99;
cout<<"Hello world";
cout<<3.14;
}
(19090)
version 2] main함수 다름 (cout<<999<<"Hello world"<<3.14; )
<COUT2.cpp>
#include <iostream>
class COUT{
public:
COUT():data_(0){}
COUT operator<<(int i){
printf("%d\n",i);
}
COUT operator<<(double d){
printf("%f\n",d);
}
COUT operator<<(std::string s){
std::cout<<s<<std::endl; //??
}
private:
int data_;
};
int main(){
COUT cout;
//cout<<99;
//cout<<"Hello world";
//cout<<3.14;
cout<<999<<"Hello world"<<3.14;
}
'C++ > Operator Overloading' 카테고리의 다른 글
cout 의 범위를 넖히는 연산자 overloading (0) | 2021.01.24 |
---|---|
단항 연산자 정의 (0) | 2021.01.24 |