나는 Terminallog 클래스에 < < 연산자를 오버로드하고 있습니다. 내가 다음과 같이하면연산자 "<<"를 포인터에 사용
Terminallog clog(3);
clog << "stackoverflow.com is cool" << endl;
모두 정상적으로 작동합니다. "stackoverflow.com is cool"은 Terminallog가해야하는 것과 똑같은 색채로 화면에 인쇄됩니다.
error: invalid operands of types ‘Terminallog*’ and ‘const char [5]’ to binary ‘operator<<’
내가 그것을 포인터에 "< <"연산자를 통과 문제가 있음을 볼 수 있지만 내가 어떻게 할 수 있습니다
는 지금은 나에게 컴파일러 오류를 제공
Terminallog* clog = new Terminallog(3);
clog << "stackoverflow.com is cool" << endl;
시도 비 포인터 버전과 동일한 동작을 얻으시겠습니까? 간단히 포인터를 역 참조 할 수는 있지만 객체의 로컬 복사본이 생성됩니다 (성능에 좋지는 않습니다).
따라서 올바른 방법은 무엇일까요? 사전
ftiaronsem
포인터를 역 참조하면 개체의 로컬 복사본이 만들어지지 않는다고 생각합니다. –