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样式转换。
- 参数名称不使用尾随下划线