2

我有以下实际工作要完成以学习 c++,我一直在寻找答案并阅读我所有的工作,但我有点困惑,我能否澄清我在这里出错的地方。代码如下所示:

SafeArray& SafeArray::operator =(const SafeArray& other) {
//Add code here
return *this;
}

我们必须实现将一个数组分配给另一个数组的代码。现在,如果我正确理解该代码,则该方法采用名为 other 的常量“SafeArray”的形式参数。SafeArray 后面的 & 表示传递的是实际数组本身而不是副本,而 const 表示它不能更改。同样,该方法返回实际数组本身,而不是它的副本。

因此,我认为这将是一个简单的情况,即创建一个指针,引用“其他”的内存位置,然后返回取消引用的结果。在我尝试实际编码这个想法时,我没有运气。

我尝试执行以下操作:

SafeArray* ptr = &other; //This should have created a SafeArray pointer to the memory location of the array "other".

这里的问题是我得到了错误:

main.cpp:31:23: error: invalid conversion from ‘const SafeArray*’ to ‘SafeArray*’ [-fpermissive]

我想这样做的原因是我试图将我不允许改变的东西转换成我可以改变的东西。

我可以这样写代码:

const SafeArray* = &other;

但是我也无法正确返回值。我在理论上显然误解了一些东西,有人可以解释一下我所缺少的东西。我很乐意自己编写代码,但我不能完全掌握这个方法调用。

4

1 回答 1

1

要正确定义此运算符,您只需将作为参数传递的对象的内容复制.SafeArrayotherthis

要知道如何完成这个功能,唯一的办法就是了解SafeArray类的内容,即数据成员。

于 2013-04-09T03:52:27.387 回答