c++ - 带有引用和指针的指针的重载返回
问题描述
我得到以下代码:
class myarray
{
float* rawdata;
float* GetRawData () const noexcept { return rawdata; };
float& GetRawData () const noexcept { return rawdata; };
const float& GetRawData () const noexcept { return rawdata; };
}
我收到编译器错误,说不能重载前两个成员函数。C++ 是否不可能区分,因为我们在引用中调用函数时会有不同的语法
解决方案
C++是不是不能区分
它不是。重载可以使用不同的参数列表,在成员函数的情况下,使用 ref/const 限定符。但不是通过返回值。您的重载具有相同的参数列表和 ref/const 限定符,因此它们不能相互重载。
因为我们在引用中调用函数时会有不同的语法
不,我们不会。在这两种情况下调用是相同的:
this->GetRawData()
推荐阅读
- azure-active-directory - 是否可以将本地 Windows 计算机(本地)加入 Azure 云上托管的 Windows Server VM?
- reference - 在调用方法时,什么允许从结构到其引用的隐式转换?
- ios - 每当我在 tableview 中使用 didselect 方法而不是一次显示两个复选标记时,都会获得多重复选标记
- php - 如何在 codeception 中获得失败的测试名称
- javascript - 在可缩放的 iframe 中获得正确的鼠标位置
- r - 拆分文件存在于R中的不同文件夹中
- python - 带有树莓派 2 的张量流
- python - 如何将带有图例的突出显示文本作为 html 输出?
- linux - centos启动mongodb失败
- .htaccess - .htaccess 中的条件重定向取决于 URL 中路径段的数量