我正在为我的C ++游戏引擎创建的脚本语言有一点设计问题。我要做的是让一个名为SScript的对象调用一个方法来加载必要的文件,并检查脚本文件的后缀。我还有一个名为SMessage的基类,而不是另一个名为SErrorMessage的类。以下是一些示例代码,用于说明我想要做的事情:
SScript::SScript(const std::string& filepath)
{
if (load(filepath) == SError(SError::Error_Codes::ERROR_CUSTOM))
{
}
}
SMessage& SScript::load(const std::string& filepath)
{
}
这是SError的头文件:
class SError : public SMessage
{
public:
enum class Error_Codes
{
ERROR_CUSTOM = 1,
ERROR_LOADING_SCRIPT = 2,
ERROR_SCRIPT_INCORRECT_SUFFIX = 3,
};
SError(Error_Codes errorCode);
SError(Error_Codes errorCode, const std::string& contents);
virtual void message(const std::string& contents);
inline bool operator=(const Error_Codes errorCode)
{
}
private:
SError() {};
Error_Codes m_error_code;
void organizeString(const std::string& contents);
};
在SScript :: SScript()中,我想调用load并将其与各种SMessages或SErrorMessages进行比较。我尝试实现一个运算符重载,但我认为这不会解决问题。我有点像砖墙,我需要一个认真的设计重新思考。