C++ 未解析的外部符号链接2019

C++ 未解析的外部符号链接2019,c++,class,header,global-variables,lnk2019,C++,Class,Header,Global Variables,Lnk2019,我在.cpp文件中声明了一个类,在.h文件中编写了结构, 以便在其他.cpp文件中使用该类 例如: //class1.cpp //class1.h class class1 class class1 { { private: private: double X;

我在.cpp文件中声明了一个类,在.h文件中编写了结构, 以便在其他.cpp文件中使用该类

例如:

    //class1.cpp                    //class1.h
    class class1                    class class1
    {                               {
     private:                        private:
        double X;                       double X;
        ...                             ...
     public:                         public:
        double getX(){return X;}        double getX();
        ...                             ...
    };                              };
Class2将包含“class1.h”,因此允许我使用class1,但只能在新类Class2中使用

我想要的是:

    include "class1.h"

    class1 c;

    class class2{/* ... */};

有没有可能在class2.cpp中声明一个class1类型的全局对象,如果是这样的话,该怎么做

你的class1.cpp就是问题所在

它应该更像这样:

double class1::getX(){return X;}
static class1 c;
你不需要其他的东西

至于使c仅在class2中可用,您可以将当前的c设置为静态,如下所示:

double class1::getX(){return X;}
static class1 c;
这将导致它仅在该文件中可见。 或者,您可以使c成为类2中的静态变量。 类别2.h:

class class2{
private:
    static class1 c;
}
class2.cpp:

class1 class2::c;
这是您初始化它的地方。(100%必要)


在class2中声明class1类型的成员不是我的问题。我更感兴趣的是,使用一个全局对象class1独立于其他任何东西。静态属性对我没有帮助。