读书人

C++ template vector 有关问题

发布时间: 2012-03-21 13:33:15 作者: rapoo

C++ template vector 问题
MyVector.h

#ifndef _MYVECTOR_H_
#define _MYVECTOR_H_

#include <cmath>
#include <iostream>
#include <iomanip>
#include <vector>

using namespace std;

template <typename T>
class MyVector {
public:
MyVector ();
~MyVector ();
........
......
......
private:
std::vector<T> vPoint;
};

template <typename T>
inline MyVector<T> operator* (const T val, const MyVector<T>& myVector) {
return myVector * val;
}

template <typename T>
std::ostream& operator<<(std::ostream& stream, const MyVector<T>& myVector) {
stream << fixed;
stream << setprecision(2);
for (int i=0; i<myVector.getDimension(); i++) {
stream << myVector[i] << " ";
}
return stream;
}

#include "MyVector.cpp"

#endif


MyVector.cpp
#include "MyVector.h"

template <typename T>
MyVector<T>::MyVector(){

}

template <typename T>
MyVector<T>::~MyVector (){

}
........


Debug时问题
Multiple markers at this line
- redefinition of ‘MyVector<T>::MyVector()’
- ‘MyVector<T>::MyVector()’ previously declared here

大家指点一下......


[解决办法]
看你这个错误 应该是你的CPP 里面也需要
#ifndef MyVector_CPP
#define MyVector_CPP

//code

#endif

读书人网 >C++

热点推荐