Проблема вызова конструктора
Файл Logger.h
class Logger {
public:
class LoggerException {
public:
explicit LoggerException(char const * stackTrace) {
this->stackTrace = new char[strlen(stackTrace) + 1];
strcpy(this->stackTrace, stackTrace);
}
char * getStackTrace() {
return stackTrace;
}
protected:
char * stackTrace;
};
class FileNotFoundException : LoggerException {
public:
FileNotFoundException() {
LoggerException("File not found!");
}
};
void openFile() {
...
if(!file) throw FileNotFoundException();
...
}
...
Компилятор выдаёт:
In constructor 'Logger::FileNotFoundException::FileNotFoundException()':
error: no matching function for call to 'Logger::LoggerException::LoggerException()'
candidate: Logger::LoggerException::LoggerException(const char*)
candidate: constexpr Logger::LoggerException::LoggerException(const Logger::LoggerException&)
candidate: constexpr Logger::LoggerException::LoggerException(Logger::LoggerException&&)
Ответы (1 шт):
Автор решения: Harry
→ Ссылка
Вызов конструктора предка из потомка выполняется вот так:
FileNotFoundException():LoggerException("File not found!") {}