c++ - 在 C++ 中类似 Python 的静态数据存储?

标签 c++ testing types

当我有测试数据对象或其他静态数据对象(如 SQL 字符串)时,我喜欢将它们放在应用程序代码之外。在 Python 中,这是通过一个单独的源文件和一个导入完成的,如下所示。静态数据是如何组织和使用C++的?

 (file: testdata.py)
x = Foo() (an object)
x.name = "Bar"
x.number = 123
..

(file: test.py)
import testdata.py
testObject1 = testdata.x 
..

最佳答案

有很多可能性。这也取决于您尝试做什么(例如,您是希望值在编译后可编辑还是仅在编译前可编辑?

至于后者,您可以使用单独的翻译单元。

在一些头文件中:

extern const char *name;
extern const int number;

在一个单独的源文件中:

const char *name = "Bar";
const int number = 123;

但是,您也可以使用类/结构方法:

头文件:

struct Foo {
    const char *name;
    int number;
};

extern const Foo Bar;

源文件:

const Foo Bar = {"Bar", 123};

关于c++ - 在 C++ 中类似 Python 的静态数据存储?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9761065/

相关文章:

c++ - 原子操作需要硬件支持吗?

c# - xUnit.net 与 Ninject

node.js - ECONNREFUSED 127.0.0.1 :3000 at TCPConnectWrap. afterConnect [as oncomplete] errno : 'ECONNREFUSED' ,

C++ - 无法从 'char []' 转换为 'char[]'

java - Java 中的 Float 类型转换

c++ - 如何在 if 条件中声明一个变量?

c++ - 为什么数组类型不会衰减为类模板的指针?

c++ - 复制数组然后删除原来的

javascript - 运行时设置 puppeteer 窗口大小而不是 headless (不是视口(viewport))

javascript - 如何在 npm 包 commandLineArgs 中将字符串输入为 Number