基本クラスから継承するいくつかの例外クラスを C++ で作成していますが、コンパイルできない理由がわかりません。どんな助けでも大歓迎です。
Base Class:
RandomAccessFileException.h
#ifndef RANDOMACCESSFILEEXCEPTION_H
#define RANDOMACCESSFILEEXCEPTION_H
class RandomAcessFileException
{
public:
RandomAcessFileException();
virtual const char* getMessage() = 0;
protected:
char m_message[100];
};
#endif
Derived Class:
RandomAccessFileNotFoundException.h
#ifndef RANDOMACCESSFILENOTFOUNDEXCEPTION_H
#define RANDOMACCESSFILENOTFOUNDEXCEPTION_H
#include "RandomAccessFileException.h"
class RandomAccessFileNotFoundException : public RandomAccessFileException
{
public:
RandomAccessFileNotFoundException(const char* p_filename);
const char* getMessage();
};
#endif
RandomAccessFileNotFoundException.cpp
#include <cstring>
#include "RandomAccessFileException.h"
#include "RandomAccessFileNotFoundException.h"
RandomAccessFileNotFoundException::RandomAccessFileNotFoundException(const char* p_filename)
{
strcat(m_message, "RandomAccessFileNotFoundException: File: ");
strcat(m_message, p_filename);
}
const char* RandomAccessFileNotFoundException::getMessage()
{
return m_message;
}
g++ 言います:
RandomAccessFileNotFoundException.cpp:4:0 からインクルードされたファイル: RandomAccessFileNotFoundException.h:13:1: エラー: '{' トークンの前に期待されるクラス名 RandomAccessFileNotFoundException.cpp: コンストラクター 'RandomAccessFileNotFoundException::RandomAccessFileNotFoundException(const char*)': RandomAccessFileNotFoundException .cpp:8:12: エラー: 'm_message' はこのスコープで宣言されていません RandomAccessFileNotFoundException.cpp: メンバー関数 'const char* RandomAccessFileNotFoundException::getMessage()': RandomAccessFileNotFoundException.cpp:14:12: エラー: 'm_message'このスコープで宣言されていませんでした