注释一行使代码工作,而没有它,代码不起作用
Comment a line make the code works, while without it the code doesn't work
我在一个名为nmb的命名空间下创建了一个复数类
这是代码:
namespace nmb // nmb stands for number
{
template<class T>
class complex
{
public:
// CONSTRUCTORS
explicit complex() { }
explicit complex(const T &imaginary, const T &real) : _imaginary(imaginary), _real(real) { }
explicit complex(const complex &_complex) { *this = _complex;}
// DESTRUCTOR
~complex() { } // useless, there aren't pointers, but for make it more clear
// METHODS
inline T real() const {return _real;}
inline T imaginary() const {return _imaginary;}
inline T complex_abs() const {return sqrt( pow(_imaginary,2) + pow(_real, 2)); } /* the absolute value of a complex num
is (a^2 + b^2)^1/2*/
// OPERATOR OVERLADING
inline bool operator==(const complex &Number) { return ((_imaginary==Number._imaginary) && (_real == Number._real));}
inline bool operator!=(const complex &Number) { return !(*this == Number); }
inline friend std::ostream & operator<<(std::ostream &os, const complex &Num)
{
return (os <<"(" << Num._imaginary << " , " << Num._real << ")");
}
inline friend std::istream & operator>>(std::istream &is, const complex &Num)
{
is >> Num._imaginary;
is >> Num._real;
return is;
}
private:
T _imaginary;
T _real;
};
}
主.cpp
它还没有完成,但为了尝试一下,我将创建一个简单的主文件.cpp并编写了这个程序:
int main()
{
nmb::complex<double> a(2.4, 5.7);
nmb::complex<double> b;
//std::cin >> b;
std::cout << b << "n";
return 0;
}
问题是,如果我保持这一行//std::cin >> b;
原样,代码运行时没有错误。
没有评论
但是,如果我删除评论
int main()
{
nmb::complex<double> a(2.4, 5.7);
nmb::complex<double> b;
std::cin >> b;
std::cout << b << "n";
return 0;
}
代码抛出许多错误。
错误
我在这里留下了一些错误,因为所有错误都使我达到了 30000 个字符的限制
C:C++C++ Programscomplex numbercomplexcomplex.hpp||In instantiation of 'std::istream& nmb::operator>>(std::istream&, const nmb::complex<double>&)':|
C:C++C++ Programscomplex numbercomplexmain.cpp|11|required from here|
C:C++C++ Programscomplex numbercomplexcomplex.hpp|37|error: no match for 'operator>>' (operand types are 'std::istream' {aka 'std::basic_istream<char>'} and 'const double')|
C:msys64mingw64includec++9.2.0istream|168|note: candidate: 'std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(bool&) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_istream<_CharT, _Traits>::__istream_type = std::basic_istream<char>]' <near match>|
C:msys64mingw64includec++9.2.0istream|168|note: conversion of argument 1 would be ill-formed:|
C:C++C++ Programscomplex numbercomplexcomplex.hpp|37|error: cannot bind non-const lvalue reference of type 'bool&' to an rvalue of type 'bool'|
C:msys64mingw64includec++9.2.0istream|172|note: candidate: 'std::basic_istream<_CharT, _Traits>& std::basic_istream<_CharT, _Traits>::operator>>(short int&) [with _CharT = char; _Traits = std::char_traits<char>]' <near match>|
C:msys64mingw64includec++9.2.0istream|172|note: conversion of argument 1 would be ill-formed:|
C:C++C++ Programscomplex numbercomplexcomplex.hpp|37|error: cannot bind non-const lvalue reference of type 'short int&' to an rvalue of type 'short int'|
C:msys64mingw64includec++9.2.0istream|175|note: candidate: 'std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(short unsigned int&) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_istream<_CharT, _Traits>::__istream_type = std::basic_istream<char>]' <near match>|
C:msys64mingw64includec++9.2.0istream|175|note: conversion of argument 1 would be ill-formed:|
C:C++C++ Programscomplex numbercomplexcomplex.hpp|37|error: cannot bind non-const lvalue reference of type 'short unsigned int&' to an rvalue of type 'short unsigned int'|
C:msys64mingw64includec++9.2.0istream|179|note: candidate: 'std::basic_istream<_CharT, _Traits>& std::basic_istream<_CharT, _Traits>::operator>>(int&) [with _CharT = char; _Traits = std::char_traits<char>]' <near match>|
C:msys64mingw64includec++9.2.0istream|179|note: conversion of argument 1 would be ill-formed:|
C:C++C++ Programscomplex numbercomplexcomplex.hpp|37|error: cannot bind non-const lvalue reference of type 'int&' to an rvalue of type 'int'|
C:msys64mingw64includec++9.2.0istream|182|note: candidate: 'std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(unsigned int&) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_istream<_CharT, _Traits>::__istream_type = std::basic_istream<char>]' <near match>|
C:msys64mingw64includec++9.2.0istream|182|note: conversion of argument 1 would be ill-formed:|
C:C++C++ Programscomplex numbercomplexcomplex.hpp|37|error: cannot bind non-const lvalue reference of type 'unsigned int&' to an rvalue of type 'unsigned int'|
C:msys64mingw64includec++9.2.0istream|186|note: candidate: 'std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(long int&) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_istream<_CharT, _Traits>::__istream_type = std::basic_istream<char>]' <near match>|
C:msys64mingw64includec++9.2.0istream|186|note: conversion of argument 1 would be ill-formed:|
C:C++C++ Programscomplex numbercomplexcomplex.hpp|37|error: cannot bind non-const lvalue reference of type 'long int&' to an rvalue of type 'long int'|
C:msys64mingw64includec++9.2.0istream|190|note: candidate: 'std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(long unsigned int&) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_istream<_CharT, _Traits>::__istream_type = std::basic_istream<char>]' <near match>|
C:msys64mingw64includec++9.2.0istream|190|note: conversion of argument 1 would be ill-formed:|
C:C++C++ Programscomplex numbercomplexcomplex.hpp|37|error: cannot bind non-const lvalue reference of type 'long unsigned int&' to an rvalue of type 'long unsigned int'|
C:msys64mingw64includec++9.2.0istream|195|note: candidate: 'std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(long long int&) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_istream<_CharT, _Traits>::__istream_type = std::basic_istream<char>]' <near match>|
C:msys64mingw64includec++9.2.0istream|195|note: conversion of argument 1 would be ill-formed:|
C:C++C++ Programscomplex numbercomplexcomplex.hpp|37|error: cannot bind non-const lvalue reference of type 'long long int&' to an rvalue of type 'long long int'|
C:msys64mingw64includec++9.2.0istream|199|note: candidate: 'std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(long long unsigned int&) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_istream<_CharT, _Traits>::__istream_type = std::basic_istream<char>]' <near match>|
C:msys64mingw64includec++9.2.0istream|199|note: conversion of argument 1 would be ill-formed:|
C:C++C++ Programscomplex numbercomplexcomplex.hpp|37|error: cannot bind non-const lvalue reference of type 'long long unsigned int&' to an rvalue of type 'long long unsigned int'|
C:msys64mingw64includec++9.2.0istream|214|note: candidate: 'std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(float&) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_istream<_CharT, _Traits>::__istream_type = std::basic_istream<char>]' <near match>|
C:msys64mingw64includec++9.2.0istream|214|note: conversion of argument 1 would be ill-formed:|
C:C++C++ Programscomplex numbercomplexcomplex.hpp|37|error: cannot bind non-const lvalue reference of type 'float&' to an rvalue of type 'float'|
C:msys64mingw64includec++9.2.0istream|218|note: candidate: 'std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(double&) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_istream<_CharT, _Traits>::__istream_type = std::basic_istream<char>]' <near match>|
C:msys64mingw64includec++9.2.0istream|218|note: conversion of argument 1 would be ill-formed:|
C:C++C++ Programscomplex numbercomplexcomplex.hpp|37|error: binding reference of type 'double&' to 'const double' discards qualifiers|
C:msys64mingw64includec++9.2.0istream|222|note: candidate: 'std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(long double&) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_istream<_CharT, _Traits>::__istream_type = std::basic_istream<char>]' <near match>|
C:msys64mingw64includec++9.2.0istream|222|note: conversion of argument 1 would be ill-formed:|
C:C++C++ Programscomplex numbercomplexcomplex.hpp|37|error: cannot bind non-const lvalue reference of type 'long double&' to an rvalue of type 'long double'|
C:msys64mingw64includec++9.2.0istream|120|note: candidate: 'std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(std::basic_istream<_CharT, _Traits>::__istream_type& (*)(std::basic_istream<_CharT, _Traits>::__istream_type&)) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_istream<_CharT, _Traits>::__istream_type = std::basic_istream<char>]'|
C:msys64mingw64includec++9.2.0istream|120|note: no known conversion for argument 1 from 'const double' to 'std::basic_istream<char>::__istream_type& (*)(std::basic_istream<char>::__istream_type&)' {aka 'std::basic_istream<char>& (*)(std::basic_istream<char>&)'}|
C:msys64mingw64includec++9.2.0istream|124|note: candidate: 'std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(std::basic_istream<_CharT, _Traits>::__ios_type& (*)(std::basic_istream<_CharT, _Traits>::__ios_type&)) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_istream<_CharT, _Traits>::__istream_type = std::basic_istream<char>; std::basic_istream<_CharT, _Traits>::__ios_type = std::basic_ios<char>]'|
C:msys64mingw64includec++9.2.0istream|124|note: no known conversion for argument 1 from 'const double' to 'std::basic_istream<char>::__ios_type& (*)(std::basic_istream<char>::__ios_type&)' {aka 'std::basic_ios<char>& (*)(std::basic_ios<char>&)'}|
C:msys64mingw64includec++9.2.0istream|131|note: candidate: 'std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(std::ios_base& (*)(std::ios_base&)) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_istream<_CharT, _Traits>::__istream_type = std::basic_istream<char>]'|
C:msys64mingw64includec++9.2.0istream|131|note: no known conversion for argument 1 from 'const double' to 'std::ios_base& (*)(std::ios_base&)'|
C:msys64mingw64includec++9.2.0istream|235|note: candidate: 'std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(void*&) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_istream<_CharT, _Traits>::__istream_type = std::basic_istream<char>]'|
C:msys64mingw64includec++9.2.0istream|235|note: no known conversion for argument 1 from 'const double' to 'void*&'|
C:msys64mingw64includec++9.2.0istream|259|note: candidate: 'std::basic_istream<_CharT, _Traits>& std::basic_istream<_CharT, _Traits>::operator>>(std::basic_istream<_CharT, _Traits>::__streambuf_type*) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_istream<_CharT, _Traits>::__streambuf_type = std::basic_streambuf<char>]'|
C:msys64mingw64includec++9.2.0istream|259|note: no known conversion for argument 1 from 'const double' to 'std::basic_istream<char>::__streambuf_type*' {aka 'std::basic_streambuf<char>*'}|
C:msys64mingw64includec++9.2.0bitsbasic_string.tcc|1466|note: candidate: 'template<class _CharT, class _Traits, class _Alloc> std::basic_istream<_CharT, _Traits>& std::operator>>(std::basic_istream<_CharT, _Traits>&, std::__cxx11::basic_string<_CharT, _Traits, _Allocator>&)'|
C:msys64mingw64includec++9.2.0bitsbasic_string.tcc|1466|note: template argument deduction/substitution failed:|
C:C++C++ Programscomplex numbercomplexcomplex.hpp|37|note: mismatched types 'std::__cxx11::basic_string<_CharT, _Traits, _Allocator>' and 'const double'|
C:msys64mingw64includec++9.2.0bitsistream.tcc|931|note: candidate: 'template<class _CharT, class _Traits> std::basic_istream<_CharT, _Traits>& std::operator>>(std::basic_istream<_CharT, _Traits>&, _CharT&)'|
C:msys64mingw64includec++9.2.0bitsistream.tcc|931|note: template argument deduction/substitution failed:|
C:C++C++ Programscomplex numbercomplexcomplex.hpp|37|note: deduced conflicting types for parameter '_CharT' ('char' and 'const double')|
C:msys64mingw64includec++9.2.0istream|756|note: candidate: 'template<class _Traits> std::basic_istream<char, _Traits>& std::operator>>(std::basic_istream<char, _Traits>&, unsigned char&)'|
C:msys64mingw64includec++9.2.0istream|756|note: template argument deduction/substitution failed:|
C:C++C++ Programscomplex numbercomplexcomplex.hpp|37|note: cannot convert 'Num.nmb::complex<double>::_imaginary' (type 'const double') to type 'unsigned char&'|
C:msys64mingw64includec++9.2.0istream|761|note: candidate: 'template<class _Traits> std::basic_istream<char, _Traits>& std::operator>>(std::basic_istream<char, _Traits>&, signed char&)'|
C:msys64mingw64includec++9.2.0istream|761|note: template argument deduction/substitution failed:|
C:C++C++ Programscomplex numbercomplexcomplex.hpp|37|note: cannot convert 'Num.nmb::complex<double>::_imaginary' (type 'const double') to type 'signed char&'|
C:msys64mingw64includec++9.2.0bitsistream.tcc|963|note: candidate: 'template<class _CharT2, class _Traits2> std::basic_istream<_CharT, _Traits>& std::operator>>(std::basic_istream<_CharT, _Traits>&, _CharT2*)'|
C:msys64mingw64includec++9.2.0bitsistream.tcc|963|note: template argument deduction/substitution failed:|
C:C++C++ Programscomplex numbercomplexcomplex.hpp|37|note: mismatched types '_CharT2*' and 'double'|
C:msys64mingw64includec++9.2.0istream|803|note: candidate: 'template<class _Traits> std::basic_istream<char, _Traits>& std::operator>>(std::basic_istream<char, _Traits>&, unsigned char*)'|
C:msys64mingw64includec++9.2.0istream|803|note: template argument deduction/substitution failed:|
C:C++C++ Programscomplex numbercomplexcomplex.hpp|37|note: cannot convert 'Num.nmb::complex<double>::_imaginary' (type 'const double') to type 'unsigned char*'|
C:msys64mingw64includec++9.2.0istream|808|note: candidate: 'template<class _Traits> std::basic_istream<char, _Traits>& std::operator>>(std::basic_istream<char, _Traits>&, signed char*)'|
C:msys64mingw64includec++9.2.0istream|808|note: template argument deduction/substitution failed:|
C:C++C++ Programscomplex numbercomplexcomplex.hpp|37|note: cannot convert 'Num.nmb::complex<double>::_imaginary' (type 'const double') to type 'signed char*'|
C:msys64mingw64includec++9.2.0istream|980|note: candidate: 'template<class _Istream, class _Tp> typename std::enable_if<std::__and_<std::__not_<std::is_lvalue_reference<_Tp> >, std::__is_convertible_to_basic_istream<_Istream>, std::__is_extractable<typename std::__is_convertible_to_basic_istream<_Tp>::__istream_type, _Tp&&, void> >::value, typename std::__is_convertible_to_basic_istream<_Tp>::__istream_type>::type std::operator>>(_Istream&&, _Tp&&)'|
C:msys64mingw64includec++9.2.0istream|980|note: template argument deduction/substitution failed:|
C:C++C++ Programscomplex numbercomplexcomplex.hpp|37|required from 'std::istream& nmb::operator>>(std::istream&, const nmb::complex<double>&)'|
C:C++C++ Programscomplex numbercomplexmain.cpp|11|required from here|
C:msys64mingw64includec++9.2.0istream|980|error: no type named 'type' in 'struct std::enable_if<false, std::basic_istream<char>&>'|
C:C++C++ Programscomplex numbercomplexcomplex.hpp||In instantiation of 'std::istream& nmb::operator>>(std::istream&, const nmb::complex<double>&)':|
C:C++C++ Programscomplex numbercomplexmain.cpp|11|required from here|
C:C++C++ Programscomplex numbercomplexcomplex.hpp|38|error: no match for 'operator>>' (operand types are 'std::istream' {aka 'std::basic_istream<char>'} and 'const double')|
C:msys64mingw64includec++9.2.0istream|168|note: candidate: 'std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(bool&) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_istream<_CharT, _Traits>::__istream_type = std::basic_istream<char>]' <near match>|
C:msys64mingw64includec++9.2.0istream|168|note: conversion of argument 1 would be ill-formed:|
C:C++C++ Programscomplex numbercomplexcomplex.hpp|38|error: cannot bind non-const lvalue reference of type 'bool&' to an rvalue of type 'bool'|
C:msys64mingw64includec++9.2.0istream|172|note: candidate: 'std::basic_istream<_CharT, _Traits>& std::basic_istream<_CharT, _Traits>::operator>>(short int&) [with _CharT = char; _Traits = std::char_traits<char>]' <near match>|
C:msys64mingw64includec++9.2.0istream|172|note: conversion of argument 1 would be ill-formed:|
C:C++C++ Programscomplex numbercomplexcomplex.hpp|38|error: cannot bind non-const lvalue reference of type 'short int&' to an rvalue of type 'short int'|
C:msys64mingw64includec++9.2.0istream|175|note: candidate: 'std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(short unsigned int&) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_istream<_CharT, _Traits>::__istream_type = std::basic_istream<char>]' <near match>|
C:msys64mingw64includec++9.2.0istream|175|note: conversion of argument 1 would be ill-formed:|
C:C++C++ Programscomplex numbercomplexcomplex.hpp|38|error: cannot bind non-const lvalue reference of type 'short unsigned int&' to an rvalue of type 'short unsigned int'|
C:msys64mingw64includec++9.2.0istream|179|note: candidate: 'std::basic_istream<_CharT, _Traits>& std::basic_istream<_CharT, _Traits>::operator>>(int&) [with _CharT = char; _Traits = std::char_traits<char>]' <near match>|
C:msys64mingw64includec++9.2.0istream|179|note: conversion of argument 1 would be ill-formed:|
C:C++C++ Programscomplex numbercomplexcomplex.hpp|38|error: cannot bind non-const lvalue reference of type 'int&' to an rvalue of type 'int'|
C:msys64mingw64includec++9.2.0istream|182|note: candidate: 'std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(unsigned int&) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_istream<_CharT, _Traits>::__istream_type = std::basic_istream<char>]' <near match>|
C:msys64mingw64includec++9.2.0istream|182|note: conversion of argument 1 would be ill-formed:|
C:C++C++ Programscomplex numbercomplexcomplex.hpp|38|error: cannot bind non-const lvalue reference of type 'unsigned int&' to an rvalue of type 'unsigned int'|
C:msys64mingw64includec++9.2.0istream|186|note: candidate: 'std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(long int&) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_istream<_CharT, _Traits>::__istream_type = std::basic_istream<char>]' <near match>|
C:msys64mingw64includec++9.2.0istream|186|note: conversion of argument 1 would be ill-formed:|
C:C++C++ Programscomplex numbercomplexcomplex.hpp|38|error: cannot bind non-const lvalue reference of type 'long int&' to an rvalue of type 'long int'|
C:msys64mingw64includec++9.2.0istream|190|note: candidate: 'std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(long unsigned int&) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_istream<_CharT, _Traits>::__istream_type = std::basic_istream<char>]' <near match>|
C:msys64mingw64includec++9.2.0istream|190|note: conversion of argument 1 would be ill-formed:|
C:C++C++ Programscomplex numbercomplexcomplex.hpp|38|error: cannot bind non-const lvalue reference of type 'long unsigned int&' to an rvalue of type 'long unsigned int'|
C:msys64mingw64includec++9.2.0istream|195|note: candidate: 'std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(long long int&) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_istream<_CharT, _Traits>::__istream_type = std::basic_istream<char>]' <near match>|
C:msys64mingw64includec++9.2.0istream|195|note: conversion of argument 1 would be ill-formed:|
C:C++C++ Programscomplex numbercomplexcomplex.hpp|38|error: cannot bind non-const lvalue reference of type 'long long int&' to an rvalue of type 'long long int'|
C:msys64mingw64includec++9.2.0istream|199|note: candidate: 'std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(long long unsigned int&) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_istream<_CharT, _Traits>::__istream_type = std::basic_istream<char>]' <near match>|
C:msys64mingw64includec++9.2.0istream|199|note: conversion of argument 1 would be ill-formed:|
C:C++C++ Programscomplex numbercomplexcomplex.hpp|38|error: cannot bind non-const lvalue reference of type 'long long unsigned int&' to an rvalue of type 'long long unsigned int'|
C:msys64mingw64includec++9.2.0istream|214|note: candidate: 'std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(float&) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_istream<_CharT, _Traits>::__istream_type = std::basic_istream<char>]' <near match>|
C:msys64mingw64includec++9.2.0istream|214|note: conversion of argument 1 would be ill-formed:|
C:C++C++ Programscomplex numbercomplexcomplex.hpp|38|error: cannot bind non-const lvalue reference of type 'float&' to an rvalue of type 'float'|
C:msys64mingw64includec++9.2.0istream|218|note: candidate: 'std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(double&) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_istream<_CharT, _Traits>::__istream_type = std::basic_istream<char>]' <near match>|
C:msys64mingw64includec++9.2.0istream|218|note: conversion of argument 1 would be ill-formed:|
C:C++C++ Programscomplex numbercomplexcomplex.hpp|38|error: binding reference of type 'double&' to 'const double' discards qualifiers|
C:msys64mingw64includec++9.2.0istream|222|note: candidate: 'std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(long double&) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_istream<_CharT, _Traits>::__istream_type = std::basic_istream<char>]' <near match>|
C:msys64mingw64includec++9.2.0istream|222|note: conversion of argument 1 would be ill-formed:|
C:C++C++ Programscomplex numbercomplexcomplex.hpp|38|error: cannot bind non-const lvalue reference of type 'long double&' to an rvalue of type 'long double'|
C:msys64mingw64includec++9.2.0istream|120|note: candidate: 'std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(std::basic_istream<_CharT, _Traits>::__istream_type& (*)(std::basic_istream<_CharT, _Traits>::__istream_type&)) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_istream<_CharT, _Traits>::__istream_type = std::basic_istream<char>]'|
C:msys64mingw64includec++9.2.0istream|120|note: no known conversion for argument 1 from 'const double' to 'std::basic_istream<char>::__istream_type& (*)(std::basic_istream<char>::__istream_type&)' {aka 'std::basic_istream<char>& (*)(std::basic_istream<char>&)'}|
C:msys64mingw64includec++9.2.0istream|124|note: candidate: 'std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(std::basic_istream<_CharT, _Traits>::__ios_type& (*)(std::basic_istream<_CharT, _Traits>::__ios_type&)) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_istream<_CharT, _Traits>::__istream_type = std::basic_istream<char>; std::basic_istream<_CharT, _Traits>::__ios_type = std::basic_ios<char>]'|
C:msys64mingw64includec++9.2.0istream|124|note: no known conversion for argument 1 from 'const double' to 'std::basic_istream<char>::__ios_type& (*)(std::basic_istream<char>::__ios_type&)' {aka 'std::basic_ios<char>& (*)(std::basic_ios<char>&)'}|
C:msys64mingw64includec++9.2.0istream|131|note: candidate: 'std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(std::ios_base& (*)(std::ios_base&)) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_istream<_CharT, _Traits>::__istream_type = std::basic_istream<char>]'|
C:msys64mingw64includec++9.2.0istream|131|note: no known conversion for argument 1 from 'const double' to 'std::ios_base& (*)(std::ios_base&)'|
C:msys64mingw64includec++9.2.0istream|235|note: candidate: 'std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(void*&) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_istream<_CharT, _Traits>::__istream_type = std::basic_istream<char>]'|
C:msys64mingw64includec++9.2.0istream|235|note: no known conversion for argument 1 from 'const double' to 'void*&'|
C:msys64mingw64includec++9.2.0istream|259|note: candidate: 'std::basic_istream<_CharT, _Traits>& std::basic_istream<_CharT, _Traits>::operator>>(std::basic_istream<_CharT, _Traits>::__streambuf_type*) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_istream<_CharT, _Traits>::__streambuf_type = std::basic_streambuf<char>]'|
C:msys64mingw64includec++9.2.0istream|259|note: no known conversion for argument 1 from 'const double' to 'std::basic_istream<char>::__streambuf_type*' {aka 'std::basic_streambuf<char>*'}|
C:msys64mingw64includec++9.2.0bitsbasic_string.tcc|1466|note: candidate: 'template<class _CharT, class _Traits, class _Alloc> std::basic_istream<_CharT, _Traits>& std::operator>>(std::basic_istream<_CharT, _Traits>&, std::__cxx11::basic_string<_CharT, _Traits, _Allocator>&)'|
C:msys64mingw64includec++9.2.0bitsbasic_string.tcc|1466|note: template argument deduction/substitution failed:|
C:C++C++ Programscomplex numbercomplexcomplex.hpp|38|note: mismatched types 'std::__cxx11::basic_string<_CharT, _Traits, _Allocator>' and 'const double'|
C:msys64mingw64includec++9.2.0bitsistream.tcc|931|note: candidate: 'template<class _CharT, class _Traits> std::basic_istream<_CharT, _Traits>& std::operator>>(std::basic_istream<_CharT, _Traits>&, _CharT&)'|
C:msys64mingw64includec++9.2.0bitsistream.tcc|931|note: template argument deduction/substitution failed:|
C:C++C++ Programscomplex numbercomplexcomplex.hpp|38|note: deduced conflicting types for parameter '_CharT' ('char' and 'const double')|
||=== Build failed: 28 error(s), 8 warning(s) (0 minute(s), 13 second(s))
===|
为了读取复数,您必须修改Num
,因为您不能将其声明const
:
std::istream & operator>>(std::istream &is, const complex &Num)
因此,正确的声明将不const
:
std::istream & operator>>(std::istream &is, complex &Num)
相关文章:
- 为什么这段代码不起作用,我该如何解决?
- 为什么这些完全相似的代码不起作用?
- 我不明白为什么我的代码不起作用并且需要更长的时间来运行
- 我正在尝试解决一个需要数组总和值但代码不起作用的问题,我想做这样的事情
- 注释一行使代码工作,而没有它,代码不起作用
- 我的C++合并排序代码不起作用。我在这里错过了什么?
- C ++函数重新定义(代码不起作用 - 逻辑错误)
- 试图找到一个数字的平方根,但代码不起作用。C++
- 字符串代码不起作用
- 我正在努力在随机数组中查找最小值,有人知道为什么我的代码不起作用?C++
- 从 C++ 转换的 C# 代码不起作用
- 有人可以解释我,为什么我的代码不起作用吗?
- 当我使用长整型时,我的代码不起作用,它与 int 一起工作得很好
- 无法在控制面板中创建轨道栏.示例代码不起作用
- CUDA我的共享内存代码不起作用,我缺少什么
- 为什么 C++ 中的 shell 脚本代码不起作用?
- 为什么C++代码不起作用(strncpy_s)?
- 模板函数声明为 void - 代码不起作用?
- 无法弄清楚为什么这个Arduino代码不起作用?
- "check if member exists using enable_if"中修改的代码不起作用