在定义一个类内的专属常量时,通常定义成为静态常量类型,如:
class GamePlayer
{
private:
static const int NumTurns = 5;
int scores[NumTurns];
....
};
如果编译器不支持类内静态成员初始化,则可以使用“the enum hack”的补偿做法。
class GamePlayer
{
private:
//static const int NumTurns = 5;
enum { NumTurns = 5 };
int scores[NumTurns];
....
};
ps.
之所以不使用#define的原因是,#define无法控制该常量的可视范围
对于单纯的常量,最好以const对象或者enum替换#defines
对于形似函数的macro,最好改用inline函数替换#defines
转载于:https://www.cnblogs.com/opkyo/p/7263406.html
最后
以上就是平淡世界最近收集整理的关于C++ enum hack 技巧的全部内容,更多相关C++内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复