在课堂上这怎么可能。函数重载不计算返回类型。
DataViewModel* DataViewCtrlBase::GetModel()
{
return m_model;
}
const DataViewModel* DataViewCtrlBase::GetModel() const
{
return m_model;
}
答案 0 :(得分:3)
DataViewCtrlBase::GetModel()
同时具有非const
- 限定和const
限定的重载。只有在非const
上下文中访问当前类实例时,才会调用非const
重载。
您可以将这些方法视为像(伪代码)一样重载:
DataViewModel* GetModel(DataViewCtrlBase* this) { /* ... */ } /* (0) */
const DataViewModel* GetModel(const DataViewCtrlBase* this) { /* ... */ } /* (1) */
示例:
DataViewCtrlBase x;
auto& x_non_const = x;
x_non_const.GetModel(); // Calls (0) | Equivalent to: GetModel(x_non_const)
const auto& x_const = x;
x_const.GetModel(); // Calls (1) | Equivalent to: GetModel(x_const)