这是使用 static const 变量的正确方法吗?在我的顶级课程中(形状)
#ifndef SHAPE_H
#define SHAPE_H
class Shape
{
public:
static const double pi;
private:
double originX;
double originY;
};
const double Shape::pi = 3.14159265;
#endif
然后在扩展 Shape 的类中,我使用 Shape::pi。我收到链接器错误。我将 const double Shape::pi = 3.14... 移至 Shape.cpp 文件,然后编译我的程序。为什么会发生这种情况?谢谢。
如果你有办法添加C++11
(或更高版本)标记到您的编译器,您将能够执行以下操作:
ifndef SHAPE_H
#define SHAPE_H
class Shape
{
public:
static constexpr double pi = 3.14159265;
private:
double originX;
double originY;
};
#endif
Since C++11
您可以将 const 表达式用于整型以外的类型。这使您能够就地声明和定义常量变量。
更多细节:https://en.cppreference.com/w/cpp/language/constexpr
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)