vector中存的是指针,然后自己写了排序,
BOOL CompareLess(const CFriendRoomUser *rhs, const CFriendRoomUser *lhs)
{
return rhs->m_nPayoffMoney < lhs->m_nPayoffMoney;
}
但是在编译的时候总是报错,是在linux下
.obj/AllocServer.o:/usr/lib/gcc/x86_64-redhat-linux/4.4.7/../../../../include/c++/4.4.7/new:101: first defined here
.obj/FriendRoomController.o: In function CompareLess(CFriendRoomUser const*, CFriendRoomUser const*)':
CompareLess(CFriendRoomUser const*, CFriendRoomUser const*)'
/usr/local/ACE_wrappers/ace/Thread_Manager.inl:75: multiple definition of
求大神帮忙看看
const指针是不是不能改变指向啊
multiple definition of CompareLess
说明你在不同的地方同时定义了CompareLess函数,只保留一个就可以了。。。
http://blog.csdn.net/hnu_zxc/article/details/6746029/
检查下是否存在同名的函数
你是不是在头文件中实现了该函数?
修改方法两个:
1. 在函数加一个static。申明为静态函数
2. 将函数的实现,移到源文件。
备注: 不能再头文件申明静态函数,源文件实现。 也不能在头文件直接实现非静态函数(这不是绝对的)。这个你得知道编译器是如何编译的。
简单说这里报错,是因为,你这个头文件被多次包含,导致一个函数有了多份实现(实际你只写了一份)