c++之--const override

来源:互联网 发布:测孕软件 编辑:程序博客网 时间:2024/06/05 21:10

派生类中重写某成员函数如下:

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_);
}

private:

template<typename T>
T BcdEncode(T dec_value)const{return (T)0;}

private:

T value_;

};


1. override时,函数声明必须完全不变,否则报错。

2. 在编写const成员函数时,不慎修改了数据成员,或者调用了其它非const成员函数,编译器将指出错误。


原创粉丝点击