派生类中重写某成员函数如下:
class A
{
public:
virtual void WriteTo(BinaryOutputStream &os) const = 0;
};
template<typename T>
class B : public A
{
public:
virtual void WriteTo(BinaryOutputStream &os) const override
{
T data =value_;
if (encode_type_ == icdmap::signal::EncodeType::ENCODE_BCD){
data = BcdEncode<T>(data);
}
os.WriteNumeric<T, BIT_NUM>(data, byte_order_);
}
template<typename T>
T BcdEncode(T dec_value)const
{return (T)0;}
private:
T value_;
};
1. override时,函数声明必须完全不变,否则报错。
2. 在编写const成员函数时,不慎修改了数据成员,或者调用了其它非const成员函数,编译器将指出错误。