头文件中的类声明和实现
Class declaration and implementation in the header file
我在大学有作业。我的任务是完成两个头文件,实现给定的类。在这些头文件中实现很重要,因为它将由单元测试进行测试,并且只会测试头文件。
假设我有这个 .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
}
您可以使用内联来实现声明之外的函数...
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)
{
}
相关文章:
- 是什么原因导致它无法编译?它是声明签名还是在函数本身的实现中
- 如何制作 cmakelists.txt编译使用在其他地方声明和实现的函数和类的 CPP
- 在实现文件中使用模板参数声明方法
- 在 h 和 cpp 文件中单独声明和实现模板有时有效,有时会出现链接器错误
- 在声明或实现中延迟初始化C++单一实例
- 声明中的实现C
- 如何实现声明功能-C 11,编译时间
- enable_if在类声明之外实现的方法专用化
- 将模板化实现分配给先前声明的函数
- 头文件中的类声明和实现
- 实现文件只能识别其他类的远期声明
- 避免对实现接口的类使用多个几乎相同的声明
- 模板化成员函数的声明和实现
- 如何用默认模板参数分离模板类的声明和实现
- 当声明了虚拟析构函数但没有实现时会发生什么情况
- 如何使用 std::enable_if 时拆分声明和实现
- 如何在类声明之外实现显式覆盖
- 使用声明实现这个抽象类
- 如何在类(c++)中声明/实现特定类型的数组
- 应该在无指针类中声明/实现析构吗?