gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-04 15:27:52 25 4
gpt4 key购买 nike

我了解关于类方法/属性构造的公共(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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com