当我有一个像这样的指针:
MyClass * pRags = new MyClass;
Run Code Online (Sandbox Code Playgroud)
所以我可以使用
pRags->foo()
Run Code Online (Sandbox Code Playgroud)
要么
(*pRags).foo()
Run Code Online (Sandbox Code Playgroud)
打电话给foo.
为什么这两个是相同的?什么是*pRags?
谢谢
为什么这两个相同?
它们是等价的,因为规范说它们是等价的.内置->在内置方面定义*和..
什么是
*pRags?
它是MyClass指向的对象pRags.的* 解引用指针,产生指向的对象.
有关更多信息,请考虑阅读一本好的C++入门书.
除了其他答案,' - >'是为了方便起见.每次访问函数的类变量时,取消引用指向对象的指针都非常难看,不方便,并且可能更令人困惑.
例如:
(*(*(*car).engine).flux_capacitor).init()
Run Code Online (Sandbox Code Playgroud)
VS
car->engine->flux_capacitor->init()
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
103 次 |
| 最近记录: |