对内部类的静态实例的未定义​​引用

时间:2019-01-14 10:49:50

标签: c++ c++11 static inner-classes

我有一个名为 Point 的以下类,该类还包含一个名为 PointFactory 的内部类。 Point类内部有一个内部类 PointFactory 的静态实例,内部实例为 Factory

    class Point{

    private:
        float x, y;
        Point(float a, float b){
            x = a;
            y = b;
        }

    public:
        struct PointFactory{

                PointFactory(){}

                Point newCartesian(float x, float y){
                    return {x, y};
                }

                Point newPolar(float rho, float theta){
                    return {rho*cos(theta), rho*sin(theta)};
                }
            };
        static PointFactory Factory();
    };

我正在尝试从静态实例 Factory 中访问方法 newCartesian newPolar ,如下所示:

Point point = Point::Factory.newCartesian(10, 20);
Point point2 = Point::Factory.newPolar(100, 200);

但是,我收到2条错误消息,指出无法解析方法 newCartesian newPolar 。我知道静态变量需要初始化,并且我相信我已经做到了。

我想知道上述错误的原因。

0 个答案:

没有答案