c++ - 为什么我得到一个“没有构造函数实例匹配 MyArray::MyArray”参数列表?
问题描述
#include <iostream>
#include <initializer_list>
class MyArray {
int* array;
public:
MyArray(){}
MyArray(std::initializer_list<int>& v) {
array = new int[v.size()];
int index = 0;
for (auto element : v) {
array[index] = element;
index++;
}
}
~MyArray()
{
delete[] array;
}
};
int main() {
MyArray object{ 2,4,2,2 };
}
这是我第一次使用 std::initializer 进行对象列表初始化。我创建了一个使用 MyArray 构造函数初始化的数组。我不知道我哪里错了。我创建了一个与参数列表匹配的对象,即一个采用初始化列表的构造函数。
解决方案
我创建了一个与参数列表匹配的对象,即一个采用初始化列表的构造函数。
你没有;不完全的。
您创建了一个构造函数,该构造函数引用std::initializer_list
.
但是以这种方式创建的 [可能] 是一个临时的,不能绑定到这样的引用。
通常,您只想std::initializer_list
按价值取 s 。即:删除&
.
推荐阅读
- java - 邮件即使很小也会被剪裁,元音中的重音问题(a、e、i、o、u 到 á、é、í、ó、ú)
- python - 将excel读入pandas数据框时如何区分excel中两行不同颜色的颜色?
- javascript - 如何管理多个导航项状态?
- java - 无法在 Visual Studio Code 中键入“点”
- node.js - knex 的事务回滚问题
- intellij-idea - Kotlin Multiplatform:共享多个目标(iOS、macOS)的实际类实现
- r - 需要为 ARIMA (p,d,q) 创建循环
- javascript - 如果我使用 dotenv 和 PM2 生态系统.config.js 设置环境变量,Node 将使用哪一个?
- api - 访问既不是众所周知的文件夹名也不是收件箱内部的文件夹
- java - 需要帮助从 url 下载 pdf 文件。文件访问受到限制