【发布时间】:2016-08-09 06:39:28
【问题描述】:
我有一个类,它接受主要的命令行参数(例如,-B、-a 等)并用它们做一些事情,但我也希望能够在不传递命令行参数的情况下实例化该函数,比如:
构造函数:
myClass(int argc, const char **argv){
<initialise class with flags from argv>
}
myClass() : myClass(2, "-B") {}
}
我在这里尝试使用标志“-B”实例化 myClass,但它一直给我错误:
no known conversion for argument 3 from ‘const char [3]’ to ‘const char**’
所以我想知道我需要做什么才能将值作为 const char** 传递?
【问题讨论】:
-
这不是真正的代码。请发布真实代码。目前,投票结束是缺乏例子。
-
注1:如果你想传递
main参数,那么const char **argv类型就不行了。没有从char**到char const**的隐式转换。 -
注2:
char的数组(如字面量"-B")不会衰减为指针对指针。 -
您可能需要
char flag[] = "-B";之类的东西,然后您可以将flag的地址作为char **传递为myClass(2, &flag) -
@DavidC.Rankin 你错过了一个链接:应该有一个
char const *指向标志[0]。或者,char const *flag = "-B";.
标签: c++ constructor