c++ - 从数组构造

标签 c++ arrays class

我正在为 C++ 开发一个简单的容器类,我意识到能够从数组中复制值会很有帮助。

这两者的区别是:

myClass myInstance;
myInstance += 2;
myInstance += 4;
myInstance += 8;
myInstance += 16;

还有这个:

myClass myInstance;
int myArray[] = {2, 4, 8, 16};
myInstance = myArray;

显然,数组结构要简洁得多。但是,由于您无法获得传递给函数的数组的大小(在本例中为 operator=),因此复制值是一个问题。

我可以将大小作为参数与数组一起传递,但这意味着我不能使用 operator=:

myInstance.getArrayValues(myArray, 4);

远不如

直观
myInstance = myArray;

这种事情一般是怎么处理的?

最佳答案

实际上,您可以通过引用接受 native 数组。这是一个赋值运算符的示例,它可以执行您想要的操作:

template <std::size_t N>
const myClass& operator=(const int(&arr)[N])
{
    // use arr as you do usually with arrays :)
    // N is the size of the array.
    return *this;
}

关于c++ - 从数组构造,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4650620/

相关文章:

java - Java 中的注释约定

c++ - C++中类与函数的模板类型推导?

java - eclipse 可以将方法转换/重构为类吗?

c++ - 我的射弹更新功能有什么问题?

c++ - 不可全局访问的单例

c++ - 使已经绘制的内容透明?

c++ - 类相互依赖问题

c++ - C 和 C++ 关于++ 运算符的区别

javascript - 获取范围之外的数据

java - 无法解析方法 'setAdapter()'