Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/137.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 是否可以将字符**作为参数传递_C++ - Fatal编程技术网

C++ 是否可以将字符**作为参数传递

C++ 是否可以将字符**作为参数传递,c++,C++,声明:菜单(常量字符*页眉,常量字符*页脚,常量字符**选项) 定义:菜单菜单(页眉,页脚,(字符**){“选项A”,“选项B”,“选项C”,NULL}) 它们的数组以红色下划线。#包括 #include <array> Menu menu(header, footer, ::std::array< char const *, 4 >{"foo", "bar", "foobar", nullptr}.data()); 菜单菜单(页眉,页脚::std::array{“f

声明:
菜单(常量字符*页眉,常量字符*页脚,常量字符**选项)

定义:
菜单菜单(页眉,页脚,(字符**){“选项A”,“选项B”,“选项C”,NULL})

它们的数组以红色下划线。

#包括
#include <array>

Menu menu(header, footer, ::std::array< char const *, 4 >{"foo", "bar", "foobar", nullptr}.data());
菜单菜单(页眉,页脚::std::array{“foo”,“bar”,“foobar”,nullptr}.data());
是否可以将字符**作为参数传递

代码加下划线的原因(可能)是因为此代码非常难看/不安全,以至于开发人员在IDE中添加了特殊处理,以便标记此类代码

如果是遗留代码,我很抱歉

如果是您的代码(或者如果您只是有权更改代码),请考虑:

  • const char**
    参数替换为
    const std::vector&
    (这样问题会少很多)

  • 用std::string实例的const引用替换其他参数,或者如果这更适合您的场景,则按值传递

  • 用nullptr替换NULL(不要在新代码中使用NULL)

  • <> >不使用C++代码中的C样式转换。

  • 参数名称不使用尾随下划线