大佬教程收集整理的这篇文章主要介绍了有没有办法在 C++ 中的此类命名空间内定义某个类的全局常量?,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
假设我有一个名为 color 的 C++ 结构
struct color {
float r,g,b;
};
以及一个接受 color 对象并对其进行处理的函数:
voID func(const color & color) {...}
通常,我使用动态构建的 color 对象调用此函数:
func(color{0.1,0.2,0.3});
但是我经常使用某些颜色,例如黑色、白色和红色。所以我发现自己经常这样做:
func(color{0.0,0.0,0.0}); // black
func(color{1.0,1.0,1.0}); // white
func(color{1.0,0.0}); // red
我想做的是
func(color::black);
func(color::whitE);
func(color::red);
所以我正在寻找一种方法来在 color 命名空间内定义 color 类型的全局常量。到目前为止,我已经尝试了这两个选项:
选项1:定义一个与struct同名的命名空间;由于命名空间冲突而无法工作。
struct color {
float r,b;
};
namespace color {
const color black{0.0,0.0};
const color white{1.0,1.0};
const color red{1.0,0.0};
}
选项2:结构体定义内的静态变量;不起作用,因为这会使结构定义不完整。
// static members
struct color {
float r,b;
static color red = color{1.0,0.0};
};
有没有办法实现我想要的,或者至少是类似的?
以上是大佬教程为你收集整理的有没有办法在 C++ 中的此类命名空间内定义某个类的全局常量?全部内容,希望文章能够帮你解决有没有办法在 C++ 中的此类命名空间内定义某个类的全局常量?所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。