两个"this" c++ 之间的区别
Difference between two "this" c++
我只想知道*this和this->之间的区别以及何时使用它。我认为*this是当前对象,this->指向当前对象。
this
是指向当前对象的指针。*this
是指针指向的值,即当前对象。this->
是(*this).
的简写,例如this->a
与(*this).a
相同。
- CCD_ 7是间接算子在CCD_。此表达式计算为
this
所指向的对象 - CCD_ 10是指针运算符成员的一个应用程序。此运算符用于取消引用指针并在一个运算符中选择一个成员
此处对两者进行了描述:http://en.cppreference.com/w/cpp/language/operator_member_access
这些都不是特定于特殊的this
指针的。运算符以相同的方式应用于任何指针。
this
是指向当前对象的指针。*
和->
运算符是标准指针运算符,它们分别1)取消引用指针(返回指向的值),以及2)访问指向的对象的成员
因此,在这种情况下,*this
是当前对象,而this->Member
访问该对象的"Member"成员,即,就像访问(*this).Member
一样。
this
是指向当前对象的指针。它隐含在所有对象方法中。
*this
取消引用this
指针this->
是(*this).
的简写
它就像解引用和点(用于访问结构或类的成员,但压缩为一个运算符。
相关文章:
- C++中std::resize(n)和std::shrink_to_fit之间的区别
- int(c) 和 c-'0' 之间的区别。C++
- C++ 使用 assign 函数的字符串与直接使用 '=' 更改值的字符串之间的区别
- std::atomic和std::condition_variable wait,notify_*方法之间的区别
- 我是C++编程的新手,这些代码之间有什么区别,我应该使用哪一个
- 在 const 函数中通过引用和指针返回之间的区别
- 我想知道长双倍和双倍之间的区别
- 这 4 个 lambda 表达式之间有什么区别?
- 结构体 S { int align; } 之间的区别;(struct 关键字后的名称)和 struct { int al
- (double) 和 double() 之间的区别
- & 和 * 之间的区别
- std::is_convertible 和 std::convertible_to 之间的区别(在实践中)?
- 析构函数和'delete'之间的区别
- 在 typedef 内部使用 const 关键字和在 typedef 外部使用 const 关键字之间有区别吗?
- 从预序遍历构造 bst 的 c++ 和 python 解决方案之间的区别
- vector.back() 和 vector[vector.size() - 1] 之间的区别?
- 空指针常量 (nullptr)、空指针值和空成员指针值之间有什么区别?
- 函数签名与调用的函数不匹配,常量字符[]和字符*之间的区别?
- OpenMP #pragma omp for v/s #pragma omp parallel for 之间的区别?
- S() 与 S{} 之间的区别?