头文件中的类声明和实现

时间:2017-05-24 10:25:03

标签: c++ header header-files

我在大学读书。我的任务是完成两个头文件与给定类的实现。在这些头文件中实现很重要,因为它将通过单元测试进行测试,并且只测试头文件。

假设我有 .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
}

1 个答案:

答案 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)
{
}