【问题标题】:Define variables vs. template定义变量与模板
【发布时间】:2019-03-14 22:08:14
【问题描述】:

在一个项目中,我们正在创建能够在运行时在英语和法语之间切换语言的文件。

使用常量变量的定义与模板的优缺点是什么。

#define TRAINABLE_LABEL "Trainable:"
#define TRAINABLE_ONE "Easily trainable"
#define TRAINABLE_TWO "Moderately trainable"
#define TRAINABLE_THREE "Highly trainable"

在模板中:

const QString TRAINABLE_LABEL = "Trainable:"
const QString TRAINABLE_ONE = "Easily trainable";
const QString TRAINABLE_TWO = "Moderately trainable";
const QString TRAINABLE_THREE = "Highly trainable";

【问题讨论】:

  • 在你走得太远之前,看看你的开发提供了哪些国际化支持。您可以完全避免这种情况。

标签: c++ qt templates struct constants


【解决方案1】:

首先:为什么叫它模板?

使用简单的#define,您并不能真正防止重新定义某个宏、类型等。因此应该避免使用宏来处理这些事情。

最好的方法可能是使用constexpr char*。这为您提供了与宏相同的行为,并且在重新定义某些变量时会发出错误。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-07
    • 2011-10-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-30
    相关资源
    最近更新 更多