首页 > 解决方案 > C++ 常量参考

问题描述

我有这个代码:

using trip_container = dummy_container;
using trip_const_reference = trip_container::const_reference;

当我更改trip_container为某个结构而不是 时dummy_container,我在第二行中收到一个错误::const_reference

类“结构名称”没有成员“const_reference”。

问题是什么?

标签: c++

解决方案


要进行引用,请附加&到类型的名称(类/结构)。

要进行const引用,const请在引用类型的名称前添加。

using trip_container = some_struct;
using trip_reference = some_struct&;
using trip_const_reference = const some_struct&;

实际上,const也可以在类型名称之后;有些人更喜欢它:

using trip_const_reference = some_struct const&;

正如 Drew Dormann 所指出的,“xxx_const_reference”通常在容器类型中定义,它是对容器元素的引用。所以上面的声明可能不是你想要的。你可能想要这样的东西:

using trip_const_reference = const some_other_struct&;

wheresome_struct是一个包含 type 元素的容器some_other_struct


推荐阅读