1

以下は、私が書いたいくつかのコードの簡略化されたバージョンです。このコードはこれまでのところ正常に動作します

class.h

namespace myNamespace
{
    class myClass
    {
    public:

        myClass(unsigned width, unsigned height);
        myClass(OtherClass& other, unsigned width, unsigned height);
        ~myClass(){};

    private:
        unsigned width;
        unsigned height;
    };
}

クラス.cpp

#include "class.h"

namespace myNamespace
{
    myClass::myClass(unsigned width, unsigned height)
    {
        //code
    }

    myClass::myClass(OtherClass& other, unsigned width, unsigned height) : myClass(width, height)
    {
        //code  
    }
}

(OtherClass は myNamespace 内の別の場所で定義され、含まれています)

OtherClass を使用するコンストラクターは other を変更しないため、const にするのが適切です。

しかし、.cpp と .h の両方でコンストラクターを使用するように変更するとconst OtherClass&、エラーが発生します。

エラー LNK2019: 未解決の外部シンボル "public: __thiscall myNamespace::myClass::myClass(class myNamespace::OtherClass &,unsigned int,unsigned int)" (??0CarbonMatrix@molecule@@QAE@AAVCarbonString@1@II@Z)関数 _wmain path\main.obj で参照

私の知る限り、 const を宣言と定義の両方で使用する限り、このエラーは発生しません。

だから私の質問:何がうまくいかず、それを修正する方法は?

4

1 に答える 1