gpt4 book ai didi

c++ - 将私有(private)静态数组作为参数传递给 C++ 中的公共(public)成员函数?

转载 作者:行者123 更新时间:2023-11-28 06:18:25 24 4
gpt4 key购买 nike

在线documents似乎建议将作为参数传递给同一类中的公共(public)函数的类的私有(private)成员变量需要声明为静态。仍然,我得到一个编译错误:

class C{

private:
static std::string table1[50];

public:
bool try (){
helper(&table1);
return true;
}
bool helper (std::string * table){
return true;
}

但是我得到了这个编译错误:

./c:72:31: error: cannot initialize a parameter of type 'std::string *' (aka
'basic_string<char, char_traits<char>, allocator<char> > *') with an rvalue of type
'std::string (*)[50]'

我还遗漏了什么吗?

最佳答案

你的 helper函数将指向 std::string 的指针作为参数.您正在向它传递一个指向 50 std::string 数组的指针.相反,传递数组的第一个元素(在这种情况下数组衰减为指针),如

helper(table1);

helper(&table1[0]);

虽然这就是您所需要的,但我非常怀疑。指向 std::string 的指针这里看起来有点可疑。最好使用 std::vector<std::string> , 或 std::array<std::string, 50> .

旁注:不要调用您的成员函数 try() , 作为 try是保留的 C++ 关键字。

关于c++ - 将私有(private)静态数组作为参数传递给 C++ 中的公共(public)成员函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29786187/

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