跟着《C++程序设计原理与实践》编写vector容器的模板实现,在编写vector的拷贝函数时出现了该函数未定义的问题,
在模板类vector中该函数定义如下:
vector& operator=(const vector&);
//改成vector& operator=(const vector&); 也不行弹出的错误代码是一样的
该函数声明如下:
vector& vector::operator=(const vector& v)
{
if(this == &v) return this;
if(v.sz <= sp) {
for(int i=0; i<v.sz; i++) elem[i] = v.elem[i];
sz = v.sz;
return *this;
}
T cp = new T[v.sz];
copy(v.elem, v.elem + v.sz, cp);
delete[] elem;
sp = sz = v.sz;
elem = cp;
return *this;
}
Main函数中这样使用的
vector v(2);
vector v2{1};
v = v2; //问题就出现在这了~
错误代码如下:
“对‘vector::operator=(vector const&)’未定义的引用 ”
//为什么vector源码中没有对'='的重载呢?
使用g++11编译的,希望能获得大神的解答,谢谢啦