未解决的外部符号LINK 2019

时间:2014-07-05 22:14:15

标签: c++ class header global-variables lnk2019

我有一个在.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的全局对象?

1 个答案:

答案 0 :(得分:2)

你的class1.cpp就是问题所在。

看起来应该更像这样:

double class1::getX(){return X;}

你不需要其他东西。

至于使c只能在class2中使用,你可以使你当前的c静态像这样:

static class1 c;

这会导致它只在该文件中可见。 或者,您可以在class2中创建一个静态变量。 class2.h:

class class2{
private:
    static class1 c;
}

class2.cpp:

class1 class2::c;

这是您初始化它的地方。 (100%必要)

http://www.cplusplus.com/doc/tutorial/classes/

http://www.learncpp.com/cpp-tutorial/811-static-member-variables/

相关问题