如何从函数返回const char **?

时间:2019-06-12 01:46:36

标签: c++

我编写了可以毫无问题地返回const char*的函数:

class Test {
public:
    const char* data() const {return data_;}
private:
    char* data_;
};

int main()
{
    Test test;
    const char* temp = test.data();

    return 0;
}

今天我需要返回const char**,所以我做了同样的事情:

class Test {
public:
    const char** data() const {return data_;}
private:
    char** data_;
};

int main()
{
    Test test;
    const char** temp = test.data();

    return 0;
}

但是它告诉我:

main.cpp:15:39: error: invalid conversion from ‘char**’ to ‘const char**’ [-fpermissive]
     const char** data() const {return data_;}
                                       ^~~~~

在MSVC中,它报告:

error C2440: 'return': cannot convert from 'char **const ' to 'const char **'

我知道它是因为const char **不是“完全const”,它是const char *的指针,但是错误消息确实使如何解决很困惑。

我的问题是:返回“完全常量”字符**的正确方法是什么?谢谢!

0 个答案:

没有答案