我有一类复数,加载了 +、-、*、/、=、!=
运算符,两种方式都具有复数和 double 类型,但是当我编写代码时 complex z = 1
,编译器给我一个错误,指出没有从 int
到 complex
的变量转换。虽然,它接受代码
complex z;
z = 1;
一切正常。我该如何解决这个错误?
最佳答案
行 complex z = 1
做 Copy Initialization .您需要一个合适的构造函数:
complex::complex(int i) // or double or whatever is convertible to int by
{ // implicit conversion
// your code
}
这不同于
complex z;
z = 1;
这是需要赋值运算符的赋值(对先前默认构造的对象)。
关于c++ - 自定义类的类型转换 - C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15576214/