我有一些 C 代码,我试图将其转换/包装成 C++ 类。我遇到了一些 C 文字数组(如果我叫错了请纠正我)我不确定如何在 C++ 构造函数中初始化它们,因为我认为你不能做文字,我认为这是特定于编译时间的, 到特定于运行时的东西。
我是否应该明确地将数组定义为特定大小,并在构造函数中对数组的文字执行 strcpy 或类似操作?
char sysUpTime[] = {1,3,6,1,2,1,1,3,0};
最佳答案
作为初始化列表或字符串操作的替代方法,您可以使用类似下面的东西(如果您真的想要的话):
struct Wrapper
{
template <size_t N>
Wrapper(const char(&arr)[N]) : vec(arr, arr+N) { }
vector<char> vec;
};
由于我长期的懒惰,我将所有内容都公开了 :)。然后你可以像这样初始化:
char foo[] = { 1, 2, 3, 4, 5 };
Wrapper bar(foo);
copy(bar.vec.begin(), bar.vec.end(), ostream_iterator<int>(cout, ", "));
关于c++ - 转换 C 数组文字以在 C++ 构造函数中工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14096446/