解构const指针?

Deconstruct const pointer?

这可能是非常基础的,但我被卡住了,根本不知道问题出在哪里。

主要代码预定义为任务。目标是尽可能多地使用 const。以下构造函数只是应该将文字字符串复制到 const m_data 并且工作正常但我无法释放内存 - 它总是留下 1 个块。我错过了什么?

main.cpp

#include <iostream>
#include "immstring.hpp"
using namespace std;
using namespace Util;

int main() 
{
  const ImmutableString s1("Hello");
}

immu.hpp

#include <cstring>
namespace Util {
class ImmutableString {
public:
    ImmutableString(const char* src);
    ~ImmutableString();

private:
    char* const m_data;
};
}

immu.cpp

#include "immstring.hpp"
#include <iostream>
#include <cstring>
namespace Util 
{
ImmutableString::ImmutableString(const char* src)
    :m_data{strcpy(new char[strlen(src)+1],src)}{}

ImmutableString::~ImmutableString() 
{
    delete m_data;
}
}

要保留所有阵列内存块,您必须像这样使用删除:

delete[] m_data;

谢谢, 罗宾.