吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 900|回复: 9
收起左侧

[已解决] 如果加上解析我就运行有个断点, 求大佬指教

[复制链接]
zds212 发表于 2021-5-5 13:33
本帖最后由 zds212 于 2021-5-7 22:32 编辑

[C++] 纯文本查看 复制代码
#include <iostream>
using namespace std;

class mint
{
public:
        mint(int num)
        {
                number = new int(num);
        }
        mint& operator=(mint &p)
        {
                if (number != NULL)
                {
                        delete number;
                        number = NULL;
                }
                number = new int(*p.number);
                return *this;
        }

        int *number;
};
ostream& operator<<(ostream& cout,mint p)
{
        cout << *p.number ;
        return cout;
}
void text01()
{
        mint p1(5);
        mint p2(6);
        mint p3 = p2=p1;
        cout << p3 <<"  "<<p2<<"  "<<p1<<endl;
}
int main()
{
        text01();
        system("pause");
        return 0;
}

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

 楼主| zds212 发表于 2021-5-5 13:35
如果加上下面代码解析的时候回出现问题。
~mint()
{
  if(number!=NULL)
     {
        detele number;
        number=NULL;
     }
}
 楼主| zds212 发表于 2021-5-5 13:36
苏紫方璇 发表于 2021-5-5 14:46
mint p3 = p2=p1;这里,p3和p2地址一样,所以后面delete的时候,p2已经delete一次了,再delete p3就会报错
 楼主| zds212 发表于 2021-5-5 14:47
苏紫方璇 发表于 2021-5-5 14:46
mint p3 = p2=p1;这里,p3和p2地址一样,所以后面delete的时候,p2已经delete一次了,再delete p3就会报错

哦哦哦,多谢大佬指点。
苏紫方璇 发表于 2021-5-5 14:56
本帖最后由 苏紫方璇 于 2021-5-5 15:01 编辑

zds212 发表于 2021-5-5 14:47
哦哦哦,多谢大佬指点。

ostream& operator<<(ostream& cout, mint &p)
这里少了一个&

免费评分

参与人数 1吾爱币 +1 热心值 +1 收起 理由
zds212 + 1 + 1 热心回复!

查看全部评分

 楼主| zds212 发表于 2021-5-5 15:05
苏紫方璇 发表于 2021-5-5 14:56
zds212 发表于 2021-5-5 14:47
哦哦哦,多谢大佬指点。
ostream& operator

嗯嗯。 我试试
 楼主| zds212 发表于 2021-5-5 15:17
我去看书,不知道怎么解决。
微信截图_20210505151438.png
 楼主| zds212 发表于 2021-5-5 19:32
#include<iostream>
using namespace std;

//赋值运算符重载
class person
{
public:
        person(int age)
        {
                m_age = new int(age);
        }
        ~person()
        {
                if (m_age != NULL)
                {
                        delete m_age;
                        m_age = NULL;
                }
        }
        person& operator=(person &p)
        {
                //深拷贝
                if (m_age != NULL)
                {
                        delete m_age;
                        m_age = NULL;
                }
                m_age=new int(*p.m_age);
                return *this;
        }
        int* m_age;
};

void test01()
{
        person p1(5);
        person p2(20);
        person p3(30);
        p1=p3 = p1=p2;
        cout << *p1.m_age << endl;
}
int main()
{
        test01();
        system("pause");
        return 0;
}
 楼主| zds212 发表于 2021-5-5 19:33
重新写了一下。 解决了。 多谢苏紫方璇论坛大牛帮忙!
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-26 02:21

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表