大佬教程收集整理的这篇文章主要介绍了c – 在命名空间中有变量很好吗?,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
namespace FileHandler { // Functions to do stuff with file const std::string file_name; }
在类中,静态变量是声明,而不是定义,它仍然需要在类之外的定义;命名空间中的变量声明是一个定义,除非您将其标记为extern并且不提供初始值设定项.
在你的情况下它没有太大的区别,因为const变量默认具有内部链接,因此你可以在程序中有多个定义(每个翻译单元一个)而没有问题.
例如.
class Test { static const std::string file_name; };
是(在某些方面)相当于:
namespace Test { extern const std::string file_name; }
如果您这样做,则会将file_name声明为空字符串.您无法在同一翻译单元的其他位置重新声明它.
namespace Test { const std::string file_name; }
但是,你可以这样做.
namespace Test { const std::string file_name = "myfile.txt"; }
以上是大佬教程为你收集整理的c – 在命名空间中有变量很好吗?全部内容,希望文章能够帮你解决c – 在命名空间中有变量很好吗?所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。