gpt4 book ai didi

c++ - const char** 是什么样的?

转载 作者:太空狗 更新时间:2023-10-29 23:13:29 32 4
gpt4 key购买 nike

我有一个类,它接受主要的命令行参数(例如,-B、-a 等)并用它们做一些事情,但我也希望能够在不传递命令行参数的情况下实例化该函数,例如:

构造函数:

myClass(int argc, const char **argv){
<initialise class with flags from argv>
}

myClass() : myClass(2, "-B") {}
}

我在这里尝试用标志“-B”实例化 myClass,但它一直给我错误:

参数 3 没有从“const char [3]”到“const char**”的已知转换

所以我想知道我需要做什么才能将值作为 const char** 传递?

最佳答案

第一级是指向第一个指向char * 的指针。第二层是指向 c 字符串的第一个 const char 的指针。

> cdecl explain "const char ** args"
declare args as pointer to pointer to const char

如果你有 -std=c++11 可用,你可以使用这个例子(但它可以重写为使用旧标准):

#include <iostream>
#include <vector>
#include <string>

class test {
public:
test(const std::vector<std::string> & args) {
for (auto & arg : args) {
std::cout << arg << "\n";
}
}

test() : test{{"-B"}} {}
};

int main(int argc, const char ** argv) {
test sth{{argv+1, argc+argv}}; // skip program name here
test sth_else;

}

关于c++ - const char** 是什么样的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38843774/

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