C++ linkage error for inline member function
<p>I have the following code:</p>

<p><em>IFile.h</em></p>

<pre><code>class IFile
{
public:
    IFile();
    ~IFile(void);

    inline bool IsValidFileType() const;
};
</code></pre>

<p><em>IFile.cpp</em></p>

<pre><code>IFile::IFile()
{
    //IsValidFileType();
}

IFile::~IFile(void)
{
}

inline bool IFile::IsValidFileType() const
{
          return true;
}
</code></pre>

<p><em>main.cpp</em></p>

<pre><code>int main(int argc, char* argv[])
{
    IFile* pFile = new IFile();
    pFile-&gt;IsValidFileType();

    return 0;
}
</code></pre>

<p>When compiling the code I get the following error:
 error LNK2019: unresolved external symbol "public: bool __thiscall IFile::IsValidFileType(void)const " (?IsValidFileType@IFile@@QBE_NXZ) referenced in function _main</p>

<p>If I change wither "inline" or "const" qualiferes for the function, or call it inside the constructor, the program will complile.
Can you please explain this behaviour?</p>
