>

myclass  내가 작성한 C ++ 클래스입니다.

myclass x;
cout << x;

10 를 출력하는 방법  또는 20.2 integer 처럼  또는 float  가치?


  • 답변 # 1

    일반적으로 operator<< 를 오버로드하여  수업 시간 :

    struct myclass { 
        int i;
    };
    std::ostream &operator<<(std::ostream &os, myclass const &m) { 
        return os << m.i;
    }
    int main() { 
        myclass x(10);
        std::cout << x;
        return 0;
    }
    
    

  • 답변 # 2

    << 를 오버로드해야합니다  운영자,

    std::ostream& operator<<(std::ostream& os, const myclass& obj)
    {
          os << obj.somevalue;
          return os;
    }
    
    

    그럼 cout << x 때  ( x )   myclass 유형입니다  귀하의 경우), 메소드에서 말한 것을 출력합니다. 위 예제의 경우 x.somevalue 입니다.  회원.

    멤버의 유형을 ostream 에 직접 추가 할 수없는 경우 , 그러면 << 를 오버로드해야합니다.  위와 동일한 방법을 사용하여 해당 유형에 대한 연산자도 사용하십시오.

  • 답변 # 3

    매우 쉽습니다. 구현하기 :

    std::ostream & operator<<(std::ostream & os, const myclass & foo)
    {
       os << foo.var;
       return os;
    }
    
    

    아웃 아웃을 연결하기 위해 os에 대한 참조를 반환해야합니다 (cout<

  • 답변 # 4

    대체 :

    struct myclass { 
        int i;
        inline operator int() const 
        {
            return i; 
        }
    };
    
    

  • 이전 ios - ckrecord를 수정 한 사용자에 대한 정보를 가져 오려면 어떻게합니까?
  • 다음 r - Rstudio에서 간단한 XML 코드를 실행 한 후 오류가 발생 함