나는 다음과 같은 구조체가 있습니다 이연 멤버 건설
struct Logger::LoggerImpl {
std::wofstream loggerStream;
}
내가 분명히 표준 : wofstream이 (컴파일러의 기본 생성자를 통해) 내재적으로 작성됩니다 LoggerImpl을 만들
.내 질문은 wofstream의 건설을 방지 (또는 연기) 할 수있는 방법은 포인터를 사용하지 않고,있다,있다? 왜냐하면 나중에 주어진 파일 이름으로 생성 할 것이기 때문입니다.
나는이 경우는 약간의 차이가 있음을 알지만, 이론적으로 부탁 해요. 당신의 정의를 늘릴 경우
"포인터를 사용하지 않고"- 그 이유는 무엇입니까? 포인터는 확실한 해결책처럼 보입니다. 그냥 거기에 그것을 초기화하는 동안 분명히 할당 할 것입니다, 그리고 당신은 분명히 어떤 단계에서도 null이 될 수없는 참조가 있다면. –
포인터가 아니라면 부모가 생성되는 것과 동시에 생성됩니다. 그것에 대해 할 수있는 일이별로 없습니다. 유일한 다른 선택은 두 부분으로 구성된 구조이지만'logger' 클래스가 아닌'wofstream' 클래스를위한 것입니다. –
왜 포인터없이 이것을하고 싶습니까? 이유가 있니? – Netherwire