안녕하세요 저는 Java 기초에 대한 지식이 있지만 C++을 처음 접했습니다.연산자 출력 오버로드
나는이 연산자 < <이 : 기본적으로 내가 뭘하려고 오전입니다
std::ostream& operator<<(std::ostream& out, Rational& r) {
int a;
int b;
int c;
int d;
b = r.n_;
c = r.d_;
if (c >= b) {
a = (b/c);
d = (b % c);
r.n_ = d;}
return out << r.n_ << '/' << r.d_;
}
을; 출력하고자하는 부분이 부적절한 부분이라면 출력하기 전에 혼합 된 숫자 형식으로 변환 할 수 있기를 원합니다. 나는 혼합 된 수를 계산하기 위해 if 문을 작성했지만 두 개의 매개 변수 만 취할 수 있으므로 < < 연산자를 사용하여 출력하는 방법을 알아내는 데 문제가 있습니다. 그것을 할 수있는 방법이 있다면 (클래스 인스턴스 변수를 편집하지 않고).
는
어떤 도움이나 아이디어가 크게 감사합니다, 사전에 감사합니다 (합리적인 클래스는 두 개의 인스턴스 변수 분자와 분모를 가지고). ^^
미리 감사드립니다.
만약 당신이'if (c <= b)'를 원한다고 생각합니까? –
나는이 질문을 정말로 이해하지 못하지만, 두 번째 피연산자를 수정하는 출력 스트림 연산자를 갖는 것이 직관력이없는 것으로 보인다. – juanchopanza
컴퓨터에 그러한 것이 없으므로 혼합 분수를 출력 할 수 없습니다. 당신은 그것들을 마치 C++에서의 지루하고 시각적 인 외관처럼 보일 수 있습니다. –