想象一下函数(RetrieveResult
),通过指针/引用/值返回对象 - 我不知道也不想知道,因为事情可能会改变。我只是想使用auto
来存储结果,并保护该对象免受当前范围内的意外更改,或者例如,如果对象向上传播。const auto和对象常量
这是很直观的只是写:
const auto result = RetrieveResult();
,一切工作正常,如果RetrieveResult
通过值或引用返回一个对象。但是,如果函数返回一个指针,那么常量将应用于该指针,而不是指向该指针所指向的对象。我仍然可以改变对象的方式。写
const auto const result = ....
导致编译错误:
duplicate 'const'
当然,我可以声明变量是这样的: 常量自动* ... 常量自动* const的...
但这种方式使我接近指针,即它不是一个通用的解决方案。
是否有可能保持真正的恒定性,并在同一时间提供灵活性(具体类型的独立性)?
“我不想也不想知道”如果你不知道它是什么,你该如何访问这个对象?对于你所知道的,它可能是一个重载了' - >'的类,你认为它是一个指针:P – Rakete1111
@ Rakete1111,例如,我可能只是转发对象,而不接触它 – Alexey
@Alexey如果你转发它为什么你关心它指向的指针是否是'const'? – Rakete1111