声明:Menu(const char* header_, const char* footer_, const char** options_);
是否有可能通过一个char **作为参数
定义:Menu menu(header, footer, (char**){"Option A", "Option B", "Option C", NULL});
他们数组被红色下划线。
声明:Menu(const char* header_, const char* footer_, const char** options_);
是否有可能通过一个char **作为参数
定义:Menu menu(header, footer, (char**){"Option A", "Option B", "Option C", NULL});
他们数组被红色下划线。
是否有可能通过一个char **作为参数
是。
代码被强调的原因是(可能),因为这个代码是如此的丑陋/不安全的,开发商在IDE中对这样的代码添加了特殊的处理被标记。
如果是旧的代码,我很抱歉。
如果它是你的代码(或如果你只是有机会去改变它),考虑:
与const std::vector<std::string>&
更换const char**
参数(你也少了很多问题,这些问题的方式)。
与常量引用替换其他参数的std :: string的情况下,或按值传递,如果这适合您的方案更好。
替换NULL与nullptr(不要使用在新代码NULL)。
不使用C-风格转换在C++代码。
不使用尾随下划线的参数名称。
#include <array>
Menu menu(header, footer, ::std::array< char const *, 4 >{"foo", "bar", "foobar", nullptr}.data());