微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

有关运算符重载和指针的问题

如何解决有关运算符重载和指针的问题

matx matx::operator +(const matx &rhs)const{
    
    if(sz!=rhs.getsz()){std::cout<<"\n dimensions of the arrays are not equal \n";
    abort();
    }
    float *buff=new float[rhs.getsz()];
    matx temp{buff,rhs.getsz()};
    for (unsigned int i=0;i<rhs.getsz();i++){
        *(buff+i)=*(a+i)+rhs.get(i);
    }
    return temp;
}

我提供了+运算符重载的代码,以添加两个数组的元素。 buff的地址仅在运算符功能内。我已经使用了该内存,并将对象matx中的指针指向该内存。我有一个疑问,在执行运算符功能之后,*buff将被销毁,但是在销毁*buff之前,我使用了构造函数为该内存分配了一个指针。现在,主要功能很简单,并且看起来运行良好。新对象指向的内存是否有可能被覆盖?

谢谢

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。