A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://cplusplus.com/reference/complex/complex/complex/ below:

public member function

<complex>

std::complex::complex initialization (1)
complex (const T& re = T(), const T& im = T());
copy (2)
complex (const complex& x);
conversion (3)
template<class U>  complex (const complex<U>& x);

Complex number constructor

Constructs a complex object.

It may be constructed from two values (re and im) or from another complex.

The

float

,

double

and

long double

specializations only allow explicit conversions to types with lower precision. Their constructors are declared as:


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
template<> class complex<float> {
  complex (float re = 0.0f, float im = 0.0f);
  explicit complex (const complex<double>& x);
  explicit complex (const complex<long double>& x);
  // ... (other members)
}
template<> class complex<double> {
  complex (double re = 0.0, double im = 0.0);
  complex (const complex<float>& x);
  explicit complex (const complex<long double>& x);
  // ... (other members)
}
template<> class complex<long double> {
  complex (long double re = 0.0L, long double im = 0.0L);
  complex (const complex<float>& x);
  complex (const complex<double>& x);
  // ... (other members)
}

The

float

,

double

and

long double

specializations have

constexpr

constructors and only allow explicit conversions to types with lower precision. Their constructors are declared as:


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
template<> class complex<float> {
  constexpr complex (float re = 0.0f, float im = 0.0f);
  explicit constexpr complex (const complex<double>& x);
  explicit constexpr complex (const complex<long double>& x);
  // ... (other members)
}
template<> class complex<double> {
  constexpr complex (double re = 0.0, double im = 0.0);
  constexpr complex (const complex<float>& x);
  explicit constexpr complex (const complex<long double>& x);
  // ... (other members)
}
template<> class complex<long double> {
  constexpr complex (long double re = 0.0L, long double im = 0.0L);
  constexpr complex (const complex<float>& x);
  constexpr complex (const complex<double>& x);
  // ... (other members)
}


To construct a complex object from its polar form, see function polar.

Parameters
re, im
Real and imaginary parts, respectively, of the complex number.
T is complex's template parameter.
x
A complex object.
If constructed from a complex object with a different template parameter (U), the appropriate conversions are performed.

Example
1
2
3
4
5
6
7
8
9
10
11
12
13
14
// complex constructor example
#include <iostream>     // std::cout
#include <complex>      // std::complex

int main ()
{
  std::complex<double> first (2.0,2.0);
  std::complex<double> second (first);
  std::complex<long double> third (second);

  std::cout << third << '\n';

  return 0;
}

Output:


Exception safety Narrowing conversions on floating-point types may produce undefined behavior (when the value is too small or too great to be represented by the type). Otherwise, constructing a complex never throws exceptions.

See also
polar
Complex from polar components (function template)
complex::real
Real part (public member function)
complex::imag
Imaginary part (public member function)

RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4