指向引用的指针 getter

大纲

我有一个带有引用的类,并且想要一个返回指针的 getter。

class X {
    std::string& text;
public:
    auto GetText() -> decltype(text) * { return &text); // doesn't work
    X(std::string& text): text(text) {}
};

简单的方法是传递一个指向这个类的指针。但是如果我传递一个引用,我能得到一个带有 getter 的指针吗?

编辑:这是错误消息

error: cannot declare pointer to 'std::__cxx11::string& {aka class std::__cxx11::basic_string<char>&}'
auto GetText() -> decltype(text) * { return &text);
                                 ^
apmccartney

首先,

auto GetText() -> decltype(text) * { return &text); // doesn't work

是声明此签名的一种非常可恶的方式。更喜欢

std::string* GetText(){ return &text);

甚至只是

auto GetText(){ return &text);

但这不是代码审查。

这里的问题是您要求指向text成员变量的声明类型的指针,该类型是字符串引用 ( std::string&)。从评论部分来看,您似乎没有意识到decltype尊重其论点的“引用”、“常量”和“易变”。

在 C++ 中不能有指向引用的指针,例如std::string&*格式错误。调用std::remove_reference_t应该可以解决这个问题,例如

auto GetText() -> std::remove_reference_t<decltype(text)> * { return &text);

但是,在这种情况下,auto无论如何都会正确推断出您的类型,因此您的显式声明是不必要的。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

setter和getter中的引用和指针。需要例子

来自分类Dev

指向数组去引用的指针

来自分类Dev

iOS:指向数组的指针引用

来自分类Dev

在获取带有指向getter的矢量的指针的idl声明时遇到问题

来自分类Dev

解引用指向char指针的指针C ++

来自分类Dev

将指向const指针的引用从指向非const的指针安置

来自分类Dev

为什么允许引用间接指向指针?

来自分类Dev

在C中解引用指向0的指针

来自分类Dev

取消引用指向不再存在的框架的指针

来自分类Dev

指向引用加数组之一的指针

来自分类Dev

取消引用指向不再存在的框架的指针

来自分类Dev

在C中解引用指向0的指针

来自分类Dev

传递引用和指向 lambda 的指针

来自分类Dev

如何将指针引用动态大小的指针指向数组?

来自分类Dev

如何将指针引用动态大小的指针指向数组?

来自分类Dev

引用属性而不是getter和setter

来自分类Dev

C ++防止通过getter更改引用

来自分类Dev

对类成员而不是 getter 的 const 引用

来自分类Dev

angularjs 从控制器引用服务 getter

来自分类Dev

在解引用的类中解引用指向函子的指针

来自分类Dev

C ++重载两次getter,一个返回指针,另一个const引用,失败

来自分类Dev

为什么以下各项具有相同的值:指向数组的指针,指向数组的取消引用的指针?

来自分类Dev

使用vue getter / setter指向localStorage时的奇怪行为

来自分类Dev

指向int数组的指针提供与取消引用时相同的地址

来自分类Dev

解引用指向结构体中DB的指针

来自分类Dev

如何在std :: set中存储指向对象的指针(或引用)

来自分类Dev

取消引用指向numpy数组或列表的void指针

来自分类Dev

通用接口如何引用指向其类型参数的指针?

来自分类Dev

解引用指向不完整类型openSSL的指针

Related 相关文章

  1. 1

    setter和getter中的引用和指针。需要例子

  2. 2

    指向数组去引用的指针

  3. 3

    iOS:指向数组的指针引用

  4. 4

    在获取带有指向getter的矢量的指针的idl声明时遇到问题

  5. 5

    解引用指向char指针的指针C ++

  6. 6

    将指向const指针的引用从指向非const的指针安置

  7. 7

    为什么允许引用间接指向指针?

  8. 8

    在C中解引用指向0的指针

  9. 9

    取消引用指向不再存在的框架的指针

  10. 10

    指向引用加数组之一的指针

  11. 11

    取消引用指向不再存在的框架的指针

  12. 12

    在C中解引用指向0的指针

  13. 13

    传递引用和指向 lambda 的指针

  14. 14

    如何将指针引用动态大小的指针指向数组?

  15. 15

    如何将指针引用动态大小的指针指向数组?

  16. 16

    引用属性而不是getter和setter

  17. 17

    C ++防止通过getter更改引用

  18. 18

    对类成员而不是 getter 的 const 引用

  19. 19

    angularjs 从控制器引用服务 getter

  20. 20

    在解引用的类中解引用指向函子的指针

  21. 21

    C ++重载两次getter,一个返回指针,另一个const引用,失败

  22. 22

    为什么以下各项具有相同的值:指向数组的指针,指向数组的取消引用的指针?

  23. 23

    使用vue getter / setter指向localStorage时的奇怪行为

  24. 24

    指向int数组的指针提供与取消引用时相同的地址

  25. 25

    解引用指向结构体中DB的指针

  26. 26

    如何在std :: set中存储指向对象的指针(或引用)

  27. 27

    取消引用指向numpy数组或列表的void指针

  28. 28

    通用接口如何引用指向其类型参数的指针?

  29. 29

    解引用指向不完整类型openSSL的指针

热门标签

归档