我为 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 进行比较。我尝试实现运算符重载,但我认为这不会解决问题。我有点碰壁了,我需要认真重新思考设计。