返回只读双指针

Hug*_*ugo 5 c++ const double-pointer

我想要一个成员变量,这是一个双指针.对象,指向的双指针不得从类外部修改.

我的以下尝试产生 "从'std :: string**'到'const std :: string**'的无效转换"

class C{

public:
    const std::string **getPrivate(){
        return myPrivate;
    }

private:
    std::string **myPrivate;
};
Run Code Online (Sandbox Code Playgroud)
  • 如果我只使用一个简单的指针,为什么相同的构造有效 std::string *myPrivate
  • 如何返回只读双指针?

    做一个明确的演员表是不错的风格return (const std::string**) myPrivate?

Jam*_*ton 3

尝试这个:

const std::string * const *getPrivate(){
    return myPrivate;
}
Run Code Online (Sandbox Code Playgroud)

const std::string ** 的问题在于它允许调用者修改未声明为 const 的指针之一。这使得指针和字符串类本身都成为常量。