Dou*_*ell 9 c++ compiler-errors
功能声明:
template <typename T>
Point<T>* operator +(Point<T> const * const point, Vector<T> const * const vector);
Run Code Online (Sandbox Code Playgroud)
自从我使用C++以来已经有一段时间了,所以也许我正在做一些非常愚蠢的事情.让我知道.
另外,不,我没有使用命名空间std.
你在语言层面上做错了的是重载操作符指针.重载运算符的至少一个参数必须是用户定义的类型,或者是对一个的引用.
但是你在另一个层面上也做错了.您将返回一个指针,这意味着您可能需要在运算符中动态分配一些存储.那么,谁拥有那个存储?谁会释放它?
您应该只接受引用并按值返回,例如:
template <typename T>
Point<T> operator +(Point<T> const& point, Vector<T> const& vector) {
return Point<T>(point.x + vector.x, point.y + vector.y);
}
Run Code Online (Sandbox Code Playgroud)