1 struct SRule 2 { 3 uint32_t rule_id; 4 5 SRule() : rule_id(0) {} 6 virtual ~SRule() {} 7 bool operator<(const SRule &b) 8 { 9 return rule_id < b.rule_id; 10 } 11 }; 12 struct SRuleNumber : public SRule 13 { 14 uint32_t n; 15 16 SRuleNumber(uint32_t n) : n(n) {} 17 }; 18 struct SRuleString : public SRule 19 { 20 string str; 21 22 SRuleString(string str) :str(str) {} 23 };
这样的继承关系,我现在想重载小于号,由base类中的rule_id决定大小关系,不管是基类还是子类的实例,都通过rule_id比较大小,要怎么实现啊,上面那种写法没有效果,求大神解答该怎么实现!