(Qt C++) 싱글 톤 로거 클래스가있는 응용 프로그램이 있습니다. 하는 GetInstance() 구현은 다음과 같습니다C++ 싱글 톤 포인터 검사
지금 나는 .H 파일에서 매크로 다음 한if(m_Instance == NULL)
{
try
{
m_Instance = new Logger();
}
catch(...){}
}
return m_Instance;
: -
모든 것이만큼 괜찮습니다 "#DEFINE 로그 로거 :: 인스턴스()> 로그온" new() 작업이 작동합니다. 포인터가 설정되었는지 확인하는 가장 좋은 방법은 무엇입니까 (나는 try-catch 블록을 std :: bad_alloc을 잡으려고 생각하고 있었지만 매크로에서 구현하는 방법을 모르겠습니다)? 나는 작동하는 것 같다하지만 꽤 아닌 해결 방법을 만들었습니다
"#DEFINE의 LOG 경우 (로거 :: 인스턴스()) 로거 :: 인스턴스() -> 로그인"나는 또한
내 객체에 getters/setters (예 : setPath(), getSize() ...)가 많은지 알고 싶습니다. 현재, 나는 매크로가 있습니다
"#DEFINE의 SET 설정 :: 인스턴스()"
및 코드에서
내가 ("ABC") SET-> setPath 사용할 수 있어요을; 또는 SET-> getSize();모든 메서드에 별도의 매크로가 필요하기 때문에이 경우 내 추악한 해결 방법이 작동하지 않습니다. 어떻게 개선 할 수있는 조언?
답변 해 주셔서 감사합니다.
'if'가있는 매크로는 순수한 악마입니다. 'if (error) LOG ("Error!")의 의미를 생각해보십시오. else DoImportantStuff();'. –