나는 가상 Log(std::string const&)
메서드를 가진 추상 Logger
클래스를 가지고있다. 그렇게하면 모든 유형의 로깅을 구현할 수 있습니다.Logger에 대한 변경 가능한 참조를 유지하는 것이 좋습니다.
예를 들어 Logger (QtLogger
)의 Qt 구현을 만들 수 있기 때문에 메서드가 const가 아닙니다. 따라서 위젯에 로그온하여 객체를 수정합니다.
이제는 고유 한 QtLogger
개체를 유지하고 무언가를 기록해야하는 개체를 참조로 전달한다고 가정 해 보겠습니다. 문제는 Log()
메서드가 const가 아니므로 const 메서드에서 아무 것도 기록 할 수 없다는 것입니다.
QtLogger
에 대한 변경 가능한 참조를 유지하는 것이 좋습니다?
그렇다면 gcc에서 다음 오류가 발생하는 이유는 무엇입니까? (4.6.1)
reference ‘_logger’ cannot be declared ‘mutable’ [-fpermissive]
편집 : 참조 선언하는 방법 : QtLogger mutable& _logger;
이야기에서 길을 잃어 버렸습니다. (그리고 나는 결코 변하기 쉽습니다.)하지만 const 캐스트로 문제를 해결할 수 있습니까? –