我在大学读书。我的任务是完成两个头文件与给定类的实现。在这些头文件中实现很重要,因为它将通过单元测试进行测试,并且只测试头文件。
假设我有 .h 文件:
#pragma once
template<class T>
class RareVector;
template<class T>
class Vector
{
public:
Vector(){}
Vector(int dim);
Vector(T *t, int dim);
Vector(const Vector&);
~ Vector();
Vector operator+(const Vector&);
Vector operator-(const Vector&);
double operator*(const Vector&);
double operator~();
double operator%(const Vector&);
T operator[](int) const;
operator RareVector<T>();
private:
T* m_t;
int m_dim;
};
我的问题是:实现这些类的唯一地方是声明,或者我可以在下面的某处执行类似的操作:
template <class T>
Vector<T>::Vector(){
// code goes here
}
答案 0 :(得分:1)
您可以使用内联来实现声明之外的函数...
template<class T>
class Vector
{
public:
Vector(){}
Vector(int dim);
inline Vector(T *t, int dim);
Vector(const Vector&);
~ Vector();
Vector operator+(const Vector&);
...
};
template<class T>
inline Vector::Vector(T *t, int dim)
{
}