gpt4 book ai didi

c++ - 导出数据成员是否正确? (C++)

转载 作者:行者123 更新时间:2023-11-28 01:13:50 26 4
gpt4 key购买 nike

如标题所示,从 C++ 类中导入/导出静态数据是否正确或有效?

我发现了我的问题 - 我正在查看的类的作者试图导出此平台不支持的可写静态数据。

非常感谢您的回复。

最佳答案

导出的 C++ 类意味着 DLL 客户端必须使用与 DLL 相同的编译器,因为名称修改和其他问题。这实际上是一个相当大的问题,我曾经不得不为一堆 C++ 类编写 C 包装器,因为客户端程序已经切换到 MSVC9,而 DLL 本身正在使用 MSVC71。 [将 DLL 切换到 MSVC90 时还有一些其他并发症]。从那时起,我就对这种导出类的业务持怀疑态度,并且更愿意为所有内容编写一个 C 包装器。

现在,如果您愿意为导出类付出代价,我会说导出静态数据不会使问题变得更糟。可以说,在您可以导出的各种事物中,导出静态常量是最安全的。即便如此,我还是宁愿不这样做,因为就像 Timo 所说的那样,你现在被锁定在这个实现中。

我工作的一个框架要求其客户提供一组错误代码常量。随着时间的推移,我们发现使用一组简单的常量太脆弱了,于是我们转向了 OO 设计。我们有一个默认的实现,它会返回常见的错误代码,但是每个错误代码都是使用一个虚拟函数来访问的,这个虚拟函数可以被各个客户端覆盖——他们从一些高级设备特定的错误处理中使用它。事实证明,该解决方案比基于导出常量的解决方案更具可扩展性。

我建议您在导出静态变量之前仔细考虑您期望组件如何发展。

关于c++ - 导出数据成员是否正确? (C++),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/222189/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com