记录详情

Compile Error

/in/foo.cc: In constructor 'Matrix3::Matrix3()':
/in/foo.cc:14:25: error: 'memset' was not declared in this scope
   memset(m, 0, sizeof(m));
                         ^
/in/foo.cc: In function 'int main()':
/in/foo.cc:98:14: error: no match for 'operator-' (operand types are 'Matrix3' and 'Matrix3')
  M4 = (M1+ M2- M3)*k;
        ~~~~~~^~~~
/in/foo.cc:48:17: note: candidate: Matrix3 operator-(Matrix3&, Matrix3&) <near match>
  friend Matrix3 operator -(Matrix3 &M1, Matrix3 &M2)
                 ^~~~~~~~
/in/foo.cc:48:17: note:   conversion of argument 1 would be ill-formed:
/in/foo.cc:98:10: error: invalid initialization of non-const reference of type 'Matrix3&' from an rvalue of type 'Matrix3'
  M4 = (M1+ M2- M3)*k;
        ~~^~~~
In file included from /usr/include/c++/6/bits/stl_algobase.h:67:0,
                 from /usr/include/c++/6/bits/char_traits.h:39,
                 from /usr/include/c++/6/ios:40,
                 from /usr/include/c++/6/ostream:38,
                 from /usr/include/c++/6/iostream:39,
                 from /in/foo.cc:1:
/usr/include/c++/6/bits/stl_iterator.h:1193:5: note: candidate: template<class _Iterator> decltype ((__x.base() - __y.base())) std::operator-(const std::move_iterator<_IteratorL>&, const std::move_iterator<_IteratorL>&)
     operator-(const move_iterator<_Iterator>& __x,
     ^~~~~~~~
/usr/include/c++/6/bits/stl_iterator.h:1193:5: note:   template argument deduction/substitution failed:
/in/foo.cc:98:16: note:   'Matrix3' is not derived from 'const std::move_iterator<_IteratorL>'
  M4 = (M1+ M2- M3)*k;
                ^~
In file included from /usr/include/c++/6/bits/stl_algobase.h:67:0,
                 from /usr/include/c++/6/bits/char_traits.h:39,
                 from /usr/include/c++/6/ios:40,
                 from /usr/include/c++/6/ostream:38,
                 from /usr/include/c++/6/iostream:39,
                 from /in/foo.cc:1:
/usr/include/c++/6/bits/stl_iterator.h:1186:5: note: candidate: template<class _IteratorL, class _IteratorR> decltype ((__x.base() - __y.base())) std::operator-(const std::move_iterator<_IteratorL>&, const std::move_iterator<_IteratorR>&)
     operator-(const move_iterator<_IteratorL>& __x,
     ^~~~~~~~
/usr/include/c++/6/bits/stl_iterator.h:1186:5: note:   template argument deduction/substitution failed:
/in/foo.cc:98:16: note:   'Matrix3' is not derived from 'const std::move_iterator<_IteratorL>'
  M4 = (M1+ M2- M3)*k;
                ^~
In file included from /usr/include/c++/6/bits/stl_algobase.h:67:0,
                 from /usr/include/c++/6/bits/char_traits.h:39,
                 from /usr/include/c++/6/ios:40,
                 from /usr/include/c++/6/ostream:38,
                 from /usr/include/c++/6/iostream:39,
                 from /in/foo.cc:1:
/usr/include/c++/6/bits/stl_iterator.h:387:5: note: candidate: template<class _IteratorL, class _IteratorR> decltype ((__y.base() - __x.base())) std::operator-(const std::reverse_iterator<_Iterator>&, const std::reverse_iterator<_IteratorR>&)
     operator-(const reverse_iterator<_IteratorL>& __x,
     ^~~~~~~~
/usr/include/c++/6/bits/stl_iterator.h:387:5: note:   template argument deduction/substitution failed:
/in/foo.cc:98:16: note:   'Matrix3' is not derived from 'const std::reverse_iterator<_Iterator>'
  M4 = (M1+ M2- M3)*k;
                ^~
In file included from /usr/include/c++/6/bits/stl_algobase.h:67:0,
                 from /usr/include/c++/6/bits/char_traits.h:39,
                 from /usr/include/c++/6/ios:40,
                 from /usr/include/c++/6/ostream:38,
                 from /usr/include/c++/6/iostream:39,
                 from /in/foo.cc:1:
/usr/include/c++/6/bits/stl_iterator.h:333:5: note: candidate: template<class _Iterator> decltype ((__x.base() - __y.base())) std::operator-(const std::reverse_iterator<_Iterator>&, const std::reverse_iterator<_Iterator>&)
     operator-(const reverse_iterator<_Iterator>& __x,
     ^~~~~~~~
/usr/include/c++/6/bits/stl_iterator.h:333:5: note:   template argument deduction/substitution failed:
/in/foo.cc:98:16: note:   'Matrix3' is not derived from 'const std::reverse_iterator<_Iterator>'
  M4 = (M1+ M2- M3)*k;
                ^~
/in/foo.cc:99:10: error: invalid initialization of non-const reference of type 'Matrix3&' from an rvalue of type 'Matrix3'
  M5 = (M1* M2* M3)*k;
        ~~^~~~
/in/foo.cc:57:17: note:   initializing argument 1 of 'Matrix3 operator*(Matrix3&, Matrix3&)'
  friend Matrix3 operator *(Matrix3 &M1, Matrix3 &M2)
                 ^~~~~~~~

信息

递交者
类型
递交
题目
P1019 OO4-3 矩阵类的算术运算符的重载
语言
C++
递交时间
2019-06-08 22:01:34
评测时间
2019-06-08 22:01:34
评测机
分数
0
总耗时
0ms
峰值内存
0 Bytes