
各位晚上好! 若有两个类 A,B,A 中实现了通过 B 来构造 A 的构造方法,那么
B bar; A foo(bar); 成立.然后又在 A 中重载=运算符,使得下面成立:
B bar; A foo; foo = bar; 现在我直接赋值初始化就出错(请教一下原因):
B bar; A foo = bar;//显示没有这种转换形式 如果想要像上面这样初始化 A 类,我还需要做什么吗?
1 elfive 2019 年 6 月 12 日 via iPhone A::A(B & b)方法 |
2 noli 2019 年 6 月 12 日 替一楼修改一下说法, 需要一个以 B 类型常引用作为参数的 A 的构造函数 A::A(const B& b) |
3 HHehr0ow 2019 年 6 月 12 日 看编译器报错,缺啥补啥 |
4 zycpp 2019 年 6 月 13 日 via iPhone gcc7.3 下没问题,楼主贴下代码 |
5 PanPancf 2019 年 6 月 13 日 A foo = bar 需要你提供一个 copy constructor |
6 tkhmy 2019 年 6 月 13 日 via Android 拷贝构造 不同于 赋值运算 |
7 LitostCheng 2019 年 6 月 13 日 一个是拷贝构造函数,一个是复制函数, 6 楼 @tkhmy 正解 |