【发布时间】:2017-12-11 11:24:50
【问题描述】:
我正在编写一个朋友函数来扩展我创建的类 Vector。
Vector myFunc (const Vector& from)
{
Vector res = from;
//stuff
return res;
}
它给了我错误:将“const Vector”绑定到“Vector&”类型的引用会丢弃限定符。
我不明白为什么这是无效的,因为我只是在修改通过重载 operator=(const Vector&) 函数创建的 const 对象的副本
但是,如果我修改它以创建矢量,然后复制
Vector myFunc (const Vector& from)
{
Vector res;
res = from;
//stuff
return res;
}
它编译没有错误。为什么?
【问题讨论】:
-
如果不发布
Vector的定义,就没什么好讨论的了,因为这将是产生此错误的重载的来源。 -
您应该发布更多代码。特别是您的复制构造函数。