gpt4 book ai didi

c++ - 类头之外的模板运算符重载实现

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:25:24 25 4
gpt4 key购买 nike

<分区>

“util.h”中定义的以下代码编译和链接。但是,当我将运算符重载的实现移至“util.cc”时,链接器无法解析符号。这是可能的,还是由于模板的性质而不能这样做?

谢谢,


工作

工具.h

template<class T>
struct Rect {
T x, y, w, h;

friend bool operator ==(const Rect<T> &a, const Rect<T> &b) {
return (a.x == b.x && a.y == b.y && a.w == b.w && a.h == b.h);
}

friend bool operator !=(const Rect<T> &a, const Rect<T> &b) {
return !(a == b);
}
};

不工作

工具.h

template<class T>
struct Rect {
T x, y, w, h;

friend bool operator ==(const Rect<T> &a, const Rect<T> &b);
friend bool operator !=(const Rect<T> &a, const Rect<T> &b);
};

工具.cc

template<class T>
bool operator ==(const Rect<T> &a, const Rect<T> &b)
{
return (a.x == b.x && a.y == b.y && a.w == b.w && a.h == b.h);
}

template<class T>
bool operator !=(const Rect<T> &a, const Rect<T> &b)
{
return !(a == b);
}

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com