u010029536
七夜style
采纳率14.3%
2016-08-21 04:02 阅读 2.1k

关于对Vector排序的问题

20

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*)':
/usr/local/ACE_wrappers/ace/Thread_Manager.inl:75: multiple definition of
CompareLess(CFriendRoomUser const*, CFriendRoomUser const*)'

求大神帮忙看看

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

6条回答 默认 最新

  • dabocaiqq dabocaiqq 2016-08-21 16:23
    点赞 1 评论 复制链接分享
  • yuyubingMan yuyubingMan 2016-08-21 04:25

    const指针是不是不能改变指向啊

    点赞 评论 复制链接分享
  • hijack00 hijack00 2016-08-21 06:55

    multiple definition of CompareLess说明你在不同的地方同时定义了CompareLess函数,只保留一个就可以了。。。

    点赞 评论 复制链接分享
  • feng1790291543 鱼弦 2016-08-22 01:32

    检查下是否存在同名的函数

    点赞 评论 复制链接分享
  • qq_35553864 阿卡阿卡 2016-08-22 14:47

    你是不是在头文件中实现了该函数?

    点赞 评论 复制链接分享
  • weixin_35970616 weixin_35970616 2016-08-26 03:24

    修改方法两个:
    1. 在函数加一个static。申明为静态函数
    2. 将函数的实现,移到源文件。

    备注: 不能再头文件申明静态函数,源文件实现。 也不能在头文件直接实现非静态函数(这不是绝对的)。这个你得知道编译器是如何编译的。
    简单说这里报错,是因为,你这个头文件被多次包含,导致一个函数有了多份实现(实际你只写了一份)

    点赞 评论 复制链接分享

相关推荐