这是使用静态常量变量的正确方法吗?在我的顶级类(class)中(形状)
#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
从 C++11
开始,您可以将 const 表达式用于整数以外的类型。这使您能够就地声明和定义常量变量。
关于c++ - C++中的静态常量 double ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2777541/