VS2005 C ++: странная проблема с ссылками - PullRequest
0 голосов
/ 08 апреля 2010

У меня странная проблема с линковкой в ​​моем проекте Visual Studio 2005 C ++. Как всегда, я объявляю класс в заголовке и определяю его методы в cpp. Все эти файлы включены в мой проект. И у меня все еще есть неразрешенный внешний символ calcWeight. Появляется ли я на самом деле использовать этот класс в моей основной функции. calcWeight () объявлен как виртуальный в родительском классе CHDRGenerator Если я комментирую код в cpp и определяю calcWeight в теле класса, он работает нормально. Но мне действительно не нравится эта магия. Может кто-нибудь помочь?

Вот часть кода:

//mann-pickard.h
#include "stdafx.h"
#include "simple.h"

class CHDRGenerator_Mann_Pickard : public CHDRGenerator
{
public:
    /// @name Constructors
    /// @{
    /// @brief a constructor using prepared imaged sequence
    CHDRGenerator_Mann_Pickard(CSimpleImageFile * imSeq, int seqL) : CHDRGenerator(imSeq, seqL)
    {
    }

    /// @brief a constructor using filenames
    CHDRGenerator_Mann_Pickard(std::string * filenames, int seqL) : CHDRGenerator(filenames, seqL)
    {
    }

    /// @brief a constructor, CFileNameSequence object parameter
    CHDRGenerator_Mann_Pickard(CFileNameSequence & const fileseq) : CHDRGenerator(fileseq)
    {
    }
    /// @}

private:
    inline double calcWeight(double val);
};


//mann-pickard.cpp  
#include "mann-pickard.h"
//=======================Class CHDRGenerator_Mann_Pickard methods=====================//

//...

inline double CHDRGenerator_Mann_Pickard::calcWeight(double val)
{
    const double gamma = 2.2f;
    return gamma * pow(val, gamma - 1);
}
//=====================End of Class CHDRGenerator_Mann_Pickard methods=================//

"simple.h" - заголовок с реализацией класса CHDRGenerator. Я знаю, что это должно работать ... как это всегда работало. Может быть, у меня есть какая-то глупая труднодоступная ошибка? ..

1 Ответ

0 голосов
/ 08 апреля 2010

Что произойдет, если вы удалите «inline» из вашего объявления и определения calcWeight?

...