c++ - 如何处理必须按特定顺序调用的公共(public)函数的依赖项?

标签 c++ dependencies

假设我有一个处理一些数据的类:

class SomeClass
{
  public:
    void SetData(IData*);
    void ProcessData(void);
}

类需要在调用 ProcessData() 之前设置数据。我怎样才能强制执行这种依赖?如果在传入任何数据之前调用 ProcessData(),我可能会返回错误代码或抛出异常。抛出异常听起来怎么样?

附加信息 一些答案建议将 IData 传递给构造函数或 ProcessData()。这些都是合理的答案。我在这里不这样做的原因是因为这是 GUI 系统的一部分;用户可能会在任何时间点向SomeClass加载新数据并对其进行修改,因此在创建SomeClass期间,数据可能不可用。

(是的,我可以使用更好的设计来避免这个问题,但我的老板希望在屏幕上看到结果,而我必须在良好的设计和视觉效果之间做出妥协)。

最佳答案

使 SomeClass 构造函数需要 IData 并删除 SetData。同样,您也可以将 IData 传递给 ProcessData

关于c++ - 如何处理必须按特定顺序调用的公共(public)函数的依赖项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1366401/

相关文章:

c++ - 将 vector<class> myvector 传递给构造函数并访问它

c++ - 为什么基类的大小显示为 16 字节?

c++ - Visual Studio 包含路径优先级

c++ - 我现在如何知道哪些 DLL 是 C++ 的一部分?

c++ - 递归的可变参数模板函数

c++ - 具有相同字节大小的字符到十六进制 C++

visual-studio - 非托管 C++ dll 依赖项未被复制到应用程序文件夹,但不同的托管 dll 是

javascript - devDependencies 是否与 `npm install -g my-package` 一起安装?

docker - 在 docker 中运行 playwright 时缺少依赖项

java - 是否在任何地方记录了 Apache Hadoop 的构建工件?