c++之--const override
阿新 • • 發佈:2019-01-22
派生類中重寫某成員函式如下:
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成員函式,編譯器將指出錯誤。