c++ - 模板编译

标签 c++ templates compilation

有人可以向我解释如何避免以下错误吗?

我想我正在按照我阅读的有关模板编译的所有内容进行操作,但仍然出现错误。很抱歉问这个问题 - 这看起来微不足道,但我被卡住了!

谢谢, 保罗

1>------ Build started: Project: BitsAndPieces, Configuration: Release Win32 ------
1>  NonTemplateFunctionFriend_main.cpp
1>NonTemplateFunctionFriend_main.obj : error LNK2001: unresolved external symbol "public: int __thiscall Paolo<int>::getMyOnlyMember(void)" (?getMyOnlyMember@?$Paolo@H@@QAEHXZ)
1>\\na-13\agnolucp\my documents\visual studio 2010\Projects\BitsAndPieces\Release\BitsAndPieces.exe : fatal error LNK1120: 1 unresolved externals
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========

主要

#include "NonTemplateFunctionFriend.h"
#include<iostream>
using namespace std;


int main() { 
    Paolo<int> Me;
    cout << Me.getMyOnlyMember() << endl;
    return 1;
}

NonTemplateFunctionFriend.h

#ifndef NonTemplateFunctionFriend_H
#define NonTemplateFunctionFriend_H

    #include <iostream>

    template<class T> class Paolo {

    private:
        T myOnlyMember;
    public:
        Paolo(): myOnlyMember(1000) {};
        T getMyOnlyMember();
    };

    #include "NonTemplateFunctionFriend.cpp"

#endif

NonTemplateFunctionFriend.cpp

#ifndef NonTemplateFunctionFriend_CPP
#define NonTemplateFunctionFriend_CPP

    #include "NonTemplateFunctionFriend.h"

    template<class T>   T getMyOnlyMember() {
            return myOnlyMember;
    }


#endif

最佳答案

#ifndef NonTemplateFunctionFriend_H
#define NonTemplateFunctionFriend_H

    #include <iostream>

    template<class T> class Paolo {

    private:
        T myOnlyMember;
    public:
        Paolo(): myOnlyMember(1000) {};
        T getMyOnlyMember();
    };

   template<class T>
   T Paolo<T>::getMyOnlyMember() {
            return myOnlyMember;
    }


#endif

关于c++ - 模板编译,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6312428/

相关文章:

c++ - 在加载和保存期间缺少 DirectX 中 PNG 纹理的某些颜色?

c++ - 模板函数中的可选参数

C++检查文件是否为空

c++ - 将升压互斥锁与 native 线程混合使用?

c++ - 比较 : C++ template specialization approaches

c - 代码是如何执行的和gcc

c - 链接器/编译器/预处理问题

javascript - 导入语法 React Redux

c++ - 无法使用 JNI 从 C++ 调用 Java

C++ L"whatever"-> wstring -> basic_string<T>