C ++模板函数 - 未定义的引用错误

时间:2016-02-18 04:28:49

标签: c++ templates

我正在学习使用C ++中的模板来定义泛型函数。我在编写一个简单的程序时遇到了问题。我一直收到错误,说main中的函数调用是一个未定义的引用。

我可能在如何声明模板的某个地方犯了一个根本性的错误。可能尝试传递const引用。

请保持温和,我几个月内没有编写C ++。

谢谢, -Izzo

的main.cpp

#include <iostream>
#include <Probability.h>

using namespace std;

int main()
{

    int hoor[] = {3, 3, 1, 1};

    cout << "Hello world!" << endl;
    Probability prob;

    prob.ExpectedValueDataSet(hoor);

}

Probability.h

#ifndef COFFEEDEVMATH_PROBABILITY_H
#define COFFEEDEVMATH_PROBABILITY_H


class Probability
{
    public:
        Probability();
        template <typename T> void ExpectedValueDataSet(const T& data);

    protected:
    private:
};

#endif // COFFEEDEVMATH_PROBABILITY_H

Probability.cpp

#include "Probability.h"
#include <iostream>

Probability::Probability(void)
{
    //ctor
}

/* Expected Value */
template <typename T> void ExpectedValueDataSet(const T& data)
{
    bool error = 1;
    typename T::iterator it;
    double avg = 0;


    for(it = data.begin(); it != data.end(); it++)
    {
        avg = ((it - data.begin())*avg)/avg + data[it]/it;// Do nothing for now
        std::cout << avg;
        std::cout << "/n";
    }


}

0 个答案:

没有答案