为什么无法识别我的默认值构造函数?

问题描述 投票:0回答:1

这是我代码的相关部分。我几乎只是实现了一个复数类。我们不知道在构造函数中将哪种类型的值作为参数给出。 (&&,以便右值也能正常工作)我给重载提供了默认值0。

class Complex 
{
    double real;
    double img;
public:
    template <class T1, class T2>
    Complex(T1&& inpreal = 0, T2&& inpimag = 0)
        //cant do bc of narrowingconv   : real{inpreal}, img{inpimag}
    {
        real = inpreal;
        img = inpimag;
    }

我正在尝试测试两个复数之间的除法(div / multiply运算符正常工作,所以我创建了另一个复数]

    Complex A(2, 2);
    Complex B(3, 2);
    Complex C;
    C = A * (B * 2); 
    std::cout << B;

但是由于某种原因,它没有看到我的构造函数与模式匹配。我认为在这种情况下,可以省略默认值。 (所以在这里它只会为img和real分配0)我在做错人吗?tyvm

这是我代码的相关部分。我几乎只是实现了一个复数类。我们不知道在构造函数中将哪种类型的值作为参数给出。 (&&以便...

c++ constructor default-value
1个回答
0
投票
  1. 如果每种情况下var都浮动,则无需使用模板。
© www.soinside.com 2019 - 2024. All rights reserved.