다음 수업이 있습니다.
#include "OutStream.h"
#include "FileStream.h"
class Logger
{
OutStream _os;
FileStream _fs;
bool _logToScreen;
static unsigned int _line;
public:
Logger(const char *filename, bool logToScreen);
~Logger();
void print(const char *msg);
};
클래스 OutStream
에는 기본 생성자가 있지만 클래스 에는 기본 생성자 FileStream
가 없습니다. 생성자를 코딩하려고 할 때 Logger
" 'FileStream'클래스에 대한 기본 생성자가 없습니다."라는 오류가 발생합니다. 여기에 _fs도 생성하는 Logger 생성자의 코드가 있습니다.
unsigned int Logger::_line = 0;
Logger::Logger(const char* filename, bool logToScreen)
{
// Opening the given file in the FileStream class
_fs = FileStream(filename);
// Declaring the value of _logToScreen
_logToScreen = logToScreen;
}
_fs
Logger 에서 비공개로 유지하면서이 문제를 어떻게 해결할 수 있습니까?
mem-initializer-list를 사용하십시오. 생성자를 다음과 같이 정의하십시오.
Logger::Logger(const char* filename, bool logToScreen) : _fs( filename ), _logToScreen( logToScreen )
{
}
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다