- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我需要如何定义一个构造函数,以便我可以构造一个类 A,如 A({a,b,c})。这是为了避免使用看起来很危险的可变参数构造函数。
代码:
#include <vector>
class A{
public:
A(const unsigned int a, const unsigned int b, const unsigned int c) /*: A({a,b,c})*/ {}
A(const std::vector<unsigned int> v) {}
};
int main(){
A(1,2,3); //works
A({1,2,3}); // doesnt compile
return 0;
}
我的目标是构建一个具有任意多个隐藏层的网络。该 vector 应该包含相应层包含的节点数量。
编辑:
/home/simbla/qt_projects/minimalWorkingExample/main.cpp:158: error: call of overloaded 'A(<brace-enclosed initializer list>)' is ambiguous
A({1,2,3});
^
解决方法:
使用 std::initializer_list 而不是 std::vector
最佳答案
实际上,您问题中的构造函数比您说的要多。这里还有两个,由您的编译器提供:
A(A const&) = default;
A(A &&) = default;
现在有趣的一点是当您编写另一个初始化程序 A{1, 2, 3}
时会发生什么。这称为您的第一个用户定义的 c'tor。那里没有什么新奇的。但是当您编写 A({1, 2, 3})
时,重载解析有两个选项。构造一个临时的 A{1, 2, 3}
并复制它。或者为其他用户提供的 c'tor 构造一个 vector 。
在这两种情况下,它都是用户定义的转换序列。两者都不比另一个好,所以由于歧义你会得到一个很好的闪烁错误。
解决方案?使用大括号初始化 A{{1,2,3}};
或提供 initializer_list 构造函数,以更好地匹配初始化列表参数。
关于c++ - 使用大括号括起来的初始化列表调用类的构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49261221/
我正在尝试执行 vagrant up 但一直遇到此错误: ==> default: IOError: [Errno 13] Permission denied: '/usr/local/lib/pyt
我在容器 div 中有一系列动态创建的不同高度的 div。 Varying text... Varying text... Varying text... Varying text.
通过 cygwin 运行 vagrant up 时遇到以下错误。 stderr: /bin/bash: /home/vagrant/.ansible/tmp/ansible-tmp-14872260
今天要向小伙伴们介绍的是一个能够快速地把数据制作成可视化、交互页面的 Python 框架:Streamlit,分分钟让你的数据动起来! 犹记得我在做机器学习和数据分析方面的毕设时,
我是 vagrant 的新手,正在尝试将第二个磁盘添加到我正在用 vagrant 制作的虚拟机中。 我想出了如何在第一次启动虚拟机时连接磁盘,但是当我关闭机器时 然后再次备份(使用 'vagrant
我是一名优秀的程序员,十分优秀!