使用.get()和->运算符之间有区别吗?

迈克尔·格林内尔

我正在做一些C ++测试的研究,问题之一如下:

std::unique_ptr<Rectangle> rec = std::make_unique<Rectangle>(0, 0, 15, 15);

// why must we use rec.get()->?
rec.get()->setWidth(30);
rec.get()->draw();

我想知道的是为什么我们需要.get()这里?如果我省略.get(),是否会一样呢:

rec->setWidth(30);
rec->draw();
阿德里安·摩尔

根据cppreference,使用->运算符等同于使用get()函数(以下引用中的情况2):

类型名称std :: add_lvalue_reference :: type运算符*()const; (1)
指针操作符->()const noexcept; (2)

返回值
1)返回* this拥有的对象,等效于* get()。
2)返回指向* this拥有的对象的指针,即get()。

此外,通过示例(尽管不应依赖于STL的特定实现),标头的Visual Studio(MSVC)版本中的定义std::unique_ptr::get()及其“等效”->运算符<memory>相同的

    _NODISCARD pointer get() const noexcept {
        return _Mypair._Myval2;
    }
    _NODISCARD pointer operator->() const noexcept {
        return _Mypair._Myval2;
    }

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用“或”运算符和使用多个子句之间有什么区别吗?

来自分类Dev

使用StringBulder类的append方法和串联“ +”运算符之间的区别

来自分类Dev

运算符和方法之间的区别

来自分类Dev

<>和!=比较运算符之间的区别?

来自分类Dev

if语句和“?/:”运算符之间的区别

来自分类Dev

使用equal运算符或使用花括号将值分配给变量之间有区别吗?

来自分类Dev

点运算符和get方法之间的区别

来自分类Dev

react-redux 减速器中扩展运算符和没有扩展运算符之间的区别

来自分类Dev

在数组和int之间使用运算符

来自分类Dev

使用变量定义数组大小和使用新的运算符 c++ 有什么区别?

来自分类Dev

使用or和not运算符

来自分类Dev

通过与Select链接使用聚合运算符与不使用聚合运算符之间的区别

来自分类Dev

Angular 2:ngIf指令中比较运算符==和===之间有什么区别

来自分类Dev

在R编程中,any和|之间有什么区别?(或)布尔运算符?

来自分类Dev

转义序列和字符串运算符之间有什么区别?

来自分类Dev

使用“ +”运算符进行推送有什么区别吗?

来自分类Dev

C++:调用运算符和调用它的实现有区别吗

来自分类Dev

函数组合运算符(。)和fmap(<$>)之间的区别

来自分类Dev

VHDL中的mod和rem运算符之间的区别?

来自分类Dev

条件运算符和if-else之间的区别:

来自分类Dev

Boost.Spirit:运算符“%=”和“ =”之间的区别

来自分类Dev

Python:+ =运算符和追加之间的区别

来自分类Dev

Java中前缀和后缀++运算符之间的区别

来自分类Dev

<< / >>运算符重载和输入/输出功能之间的区别

来自分类Dev

C和C ++之间关于“ ^ =”运算符的区别

来自分类Dev

解引用运算符(*)char *和int *之间的区别

来自分类Dev

Unicode和ASCII运算符之间的区别

来自分类Dev

<>和Microsoft Access中的NOT运算符之间的区别?

来自分类Dev

小部件和运算符之间的区别-Fiware?

Related 相关文章

  1. 1

    使用“或”运算符和使用多个子句之间有什么区别吗?

  2. 2

    使用StringBulder类的append方法和串联“ +”运算符之间的区别

  3. 3

    运算符和方法之间的区别

  4. 4

    <>和!=比较运算符之间的区别?

  5. 5

    if语句和“?/:”运算符之间的区别

  6. 6

    使用equal运算符或使用花括号将值分配给变量之间有区别吗?

  7. 7

    点运算符和get方法之间的区别

  8. 8

    react-redux 减速器中扩展运算符和没有扩展运算符之间的区别

  9. 9

    在数组和int之间使用运算符

  10. 10

    使用变量定义数组大小和使用新的运算符 c++ 有什么区别?

  11. 11

    使用or和not运算符

  12. 12

    通过与Select链接使用聚合运算符与不使用聚合运算符之间的区别

  13. 13

    Angular 2:ngIf指令中比较运算符==和===之间有什么区别

  14. 14

    在R编程中,any和|之间有什么区别?(或)布尔运算符?

  15. 15

    转义序列和字符串运算符之间有什么区别?

  16. 16

    使用“ +”运算符进行推送有什么区别吗?

  17. 17

    C++:调用运算符和调用它的实现有区别吗

  18. 18

    函数组合运算符(。)和fmap(<$>)之间的区别

  19. 19

    VHDL中的mod和rem运算符之间的区别?

  20. 20

    条件运算符和if-else之间的区别:

  21. 21

    Boost.Spirit:运算符“%=”和“ =”之间的区别

  22. 22

    Python:+ =运算符和追加之间的区别

  23. 23

    Java中前缀和后缀++运算符之间的区别

  24. 24

    << / >>运算符重载和输入/输出功能之间的区别

  25. 25

    C和C ++之间关于“ ^ =”运算符的区别

  26. 26

    解引用运算符(*)char *和int *之间的区别

  27. 27

    Unicode和ASCII运算符之间的区别

  28. 28

    <>和Microsoft Access中的NOT运算符之间的区别?

  29. 29

    小部件和运算符之间的区别-Fiware?

热门标签

归档