C++ 保护类的私有(private) char *

标签 c++ pointers memory-management private-members

我了解关于类方法/属性构造的公共(public)、私有(private)和 protected 继承的差异。但是,我的问题与指向空终止字符串的指针特别相关。

class MyClass
{
   private: 
      char * SomeValue;

   ...
   ...
}

现在,通过处理的某个地方,MyClass->SomeValue 被分配并填充了一个字符串值。没问题。现在,我想要一些调用源,它创建了我的“MyClass”对象的实例,并且需要来自它的字符串值。由于 C++ 可以用指针和指向指针的指针等造成很多损害,我想将指针位置返回到分配的字符字符串,但不希望任何人更改值。这个默认值是在编译器和内存管理内部控制的吗?任何人将此类用作主要用于内部目的的风险很低,但我的理解更多。

谢谢

最佳答案

通常你会返回一个指向字符的 const 指针。没有什么可以阻止某人将返回值转换为非常量。但是 C++ 并不是为了防御恶意编码而设计的。

class MyClass {
  char* someValue;
public:
  const char* get_SafeSomeValue() const {
    return someValue;
  }
};

关于C++ 保护类的私有(private) char *,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4247135/

相关文章:

c++ - 析构函数上的段错误

c++ - 如何使用 + 运算符连接字符串

C指针数组

c++ - 删除 NULL 指针在写入析构函数时不会调用重载删除

c - socket C 的动态内存分配

c++ - PascalCase vs camelCase 函数?

c++ - NPAPI mac 插件与浏览器共享命令

c++ - 多维数组的算术运算

c - 指向数组的指针有什么意义?

c++ - std::map 分配是否尽可能静态?