繁体   English   中英

指针混乱C ++

[英]Pointer confusion c++

我需要完成以下一些实际工作来学习c ++,我花了很长时间寻找答案并通读了我的所有作品,但是我有点困惑,能否弄清楚我在哪里出错了。 代码如下所示:

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

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

因此,我认为这是创建指针,引用“ other”的存储位置然后返回取消引用的结果的简单情况。 在尝试实际编写此代码的尝试中,我没有运气。

我尝试做以下事情:

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;

但是,我也无法正确返回该值。 从理论上讲,我认为我在这里误解了一些东西,请有人解释我所缺少的东西。 我很乐意自己编写代码,但是我不太了解这个方法调用。

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

知道如何完成此功能的唯一方法是了解SafeArray类的内容,即数据成员。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM