-1
나는 cout과 같은 역할을하지만 몇 가지 옵션이있는 기능을 원합니다.옵션이있는 클래스에서 cout 사용자 정의
예 : MyFunc(0) << "Cats like to drink milk " << 2 << endl;
의 0, 모든 출력을가하지 말아야 할 때
MyFunc(1) << "Cats like to drink milk " << 2 << endl;
는 "고양이 베이글 반쪽을 마시고 싶어." ostream을 사용해야한다는 몇 가지 포럼을 읽었지 만, 어떻게 내 용도로 사용할 수 있는지 확신 할 수 없습니다. MyFunc는 기본적으로 생성자에 대해 1,0 옵션을 갖는 클래스입니다.
나는 이런 것들을 보았지만 그것이 어떻게 작동하는지 알지 못합니다.
Log& operator<< (std::ostream &(*f)(std::ostream &)){
cout << *f;
return *this;
}
도움을 주시면 감사하겠습니다.
이 문제의 더 단순한 부분을 해결 했습니까? 숫자에 대해 특별히 신경 쓰지 않고'cout'처럼 행동하는 클래스를 작성하는 것과 같은가? – Beta
글쎄, 당신은 일반적으로 표준 네임 스페이스의 객체를 상속하지 말아야한다. 그러나 나는'std :: cout'을 래핑하고 모든 [같은 유형] (http : // en)에 대해'<<'연산자를 구현할 것으로 예상 할 수있다. .cppreference.com/w/cpp/io/basic_ostream/operator_ltlt). [이] (http://coliru.stacked-crooked.com/a/4970cbea5b144ec7)와 같은 것 – AndyG
@AndyG, 고맙습니다. 내가 정확히 무엇을 찾고 있었습니까! – user42826