- 主题:[求助] 这个构造函数该怎么写...
看起来缺了一个 std::complex<int> 类型的复制构造函数
似乎可以考虑将你的类模板化
【 在 tom6bj 的大作中提到: 】
: 想写个阻抗类如下,
: class IMPEDANCE {
: public:
: ...................
--
FROM 120.253.228.*
MSVS 2022 下述代码可行
#include <complex>
using namespace std::complex_literals;
class IMPEDANCE {
public:
IMPEDANCE( std::complex< float > z ) : _z( z ) {}
IMPEDANCE( void ) : _z( 0 ) {}
IMPEDANCE& operator=( const std::complex< float >& z )
{
this->_z = z;
return *this;
}
private:
std::complex< float > _z;
};
int main()
{
IMPEDANCE z4 = 18.0f + 45.0if;
return 0;
}
【 在 tom6bj 的大作中提到: 】
: 不是这个问题吧, 写成IMPENDANCE z = 18.0f + 45.0fj也是不行的
: app.cc:41:26: error: conversion from '__complex__ float' to non-scalar type 'IMPEDANCE' requested
: 模板化试试 @@
: ...................
--
FROM 120.253.228.*
确实是 i 不是 j
楼主的那个错误似乎是 operator+ 默认没有重载 std::complex<int> 造成的
访问 cppreference 的速度太慢,没法看个仔细
【 在 z16166 的大作中提到: 】
: 18 + 45j, 不是18 + 45i 吗?
: std::complex_literals里是用的i还是j?
--
FROM 120.253.228.*