【发布时间】:2013-02-12 01:29:50
【问题描述】:
在我的头文件中
template <typename T>
class Vector {
public:
// constructor and other things
const Vector& operator=(const Vector &rhs);
};
这是我迄今为止尝试过的一个声明
template <typename T> Vector& Vector< T >::operator=( const Vector &rhs )
{
if( this != &rhs )
{
delete [ ] array;
theSize = rhs.size();
theCapacity = rhs.capacity();
array = new T[ capacity() ];
for( int i = 0; i < size(); i++ ){
array[ i ] = rhs.array[ i ];
}
}
return *this;
}
这是编译器告诉我的
In file included from Vector.h:96,
from main.cpp:2:
Vector.cpp:18: error: expected constructor, destructor, or type conversion before ‘&’ token
make: *** [project1] Error 1
如何正确声明复制构造函数?
注意:这是针对项目的,我无法更改标头声明,因此this 之类的建议虽然有用,但在此特定情况下没有帮助。
感谢您的帮助!
【问题讨论】:
标签: c++ templates copy-constructor