我正在为我的程序编写全局常量,对我来说重要的是对象的数据尽可能本地化并且在一起,所以我想把所有内容放在构造函数中。
问题是,在这种情况下,常量是一个将其他对象数组作为参数的对象。
像这样的工作:
Constant::Constant(const char * string){...}
const Constant obj("string");
但是这样的事情不会:
Constant::Constant(const int * array){...}
const Constant obj({1, 2, 3, 4});
以及我需要的东西当然不会:
Constant::Constant(const vec2 * array){...}
const Constant obj({vec3(6, 9), vec3(4, 2)});
我是否尝试错误地执行此操作,使用错误的构造函数参数类型,或者字符串文字是可以像这样放在参数列表中的唯一数组文字?
答案 0 :(得分:0)
除了评论中所说的内容之外,您可能还想尝试一下(实时查看here):
#include <bits/stdc++.h>
struct Stru {
template <std::size_t n>
explicit Stru(const int (&arr)[n]) {
for (int v : arr) {
std::cout << v << ' ';
}
}
};
int main() {
Stru obj({1, 2, 3});
}