标题:关于对象数组调换顺序
只看楼主
Jonny0201
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:52
帖 子:488
专家分:2603
注 册:2016-11-7
结帖率:100%
 问题点数:0 回复次数:1 
关于对象数组调换顺序
class CFather {
protected:
    int count;
public:
    int getCount {
        return count;
    }
}
class CSon1 : public CFather {
}
class CSon2 : public CFather {
}
class CSon 3 : public CFather {
}
int main() {
    CFather * F[3] = {new CSon1(), new CSon2(), new CSon3()};
    //根据三个的不同子类对象的count从高到低重新对数组进行排序
}
自己想过一个方法
用类似于temp = F[n]
F[n] = F[m]
F[m] = temp
的方法,但是不知道运算符重载应该怎么写

[此贴子已经被作者于2017-5-24 18:32编辑过]

搜索更多相关主题的帖子: 对象 数组 class public new 
2017-05-24 18:28
Jonny0201
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:52
帖 子:488
专家分:2603
注 册:2016-11-7
得分:0 
已经解决,这里给大家一个参考
需要#include <algorithm>
假设有一个对象指针数组 CFather * Son = {new CSon1(), new CSon2(), new CSon3()}
三个数组里都有count,对于count的大小对数组进行重新排序
bool compare(CFather *a, CFather *b) {
    return a.getCount() > b.getCount();
}
int main() {
    CFather * Son = {new CSon1(), new CSon2(), new CSon3()};
    sort(Son, Son + 3, compare);    //内置的排序函数
}
2017-05-24 21:13



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-477338-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.208940 second(s), 7 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved