吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1103|回复: 3
收起左侧

[已解决] 求帮忙看看这段代码里有什么错误?

[复制链接]
Pammer 发表于 2020-4-8 21:16
本帖最后由 Pammer 于 2020-4-9 07:39 编辑

[C++] 纯文本查看 复制代码
#include<iostream>
using std::istream;
using std::ostream;
class String
{
public:
        String(const char* str = "\0");
        void SetString(const char* str);
        virtual ~String();
private:
        char* str = nullptr;
protected:
};

String::String(const char* str)
{
        SetString(str);
        return;
}

void String::SetString(const char* str)
{
        if (this->str != nullptr)
                delete[] str;
        size_t length = strlen(str) + 1;
        this->str = new char[length];
        strcpy_s(this->str, length, str);
        return;
}

String::~String()
{
        delete[] this->str;
}

这段代码在执行~String的时候会报错,实在是看不出来是什么错误了,求教

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

我的爱是你 发表于 2020-4-8 21:33
本帖最后由 我的爱是你 于 2020-4-8 21:36 编辑

没有错,但你应该这样了
批注 2020-04-08 213133.jpg
由于你没写copy构造 所以函数执行结束后会对同一块内存析构两次 自然报错。
类默认copy构造为浅拷贝,你用对象初始化类时 应该对其开辟内存。

免费评分

参与人数 1吾爱币 +1 热心值 +1 收起 理由
Pammer + 1 + 1 谢谢,会了!

查看全部评分

semiuel 发表于 2020-4-8 21:52
一脸懵逼的进来,然后一脸懵逼的出去,假装我看懂了。
 楼主| Pammer 发表于 2020-4-9 07:39
semiuel 发表于 2020-4-8 21:52
一脸懵逼的进来,然后一脸懵逼的出去,假装我看懂了。

继续水!
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

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

GMT+8, 2024-11-30 01:43

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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