bad*_*erm 5 c++ syntax pointers class
这更像是一个语法优雅的问题,但我正在学习C++并使用指针.如果我有一个类,Car,我可以创建一个指向该类的新实例的指针
Car * Audi = new Car;
Run Code Online (Sandbox Code Playgroud)
如果该类具有成员变量权重(例如unsigned int),我可以使用其中任何一个来访问它
(*Audi).weight
Run Code Online (Sandbox Code Playgroud)
要么
Audi->weight
Run Code Online (Sandbox Code Playgroud)
如果该类有一个成员变量age,它本身就是一个指针,我可以用它们访问它
*((*Audi).age)
Run Code Online (Sandbox Code Playgroud)
要么
*(Audi->age)
Run Code Online (Sandbox Code Playgroud)
有没有其他方法可以解除指针的这两种方式(肯定不是特别复杂)?我想想
Audi->*age
Run Code Online (Sandbox Code Playgroud)
会工作,但唉它没有.
(我很欣赏访问者通常更喜欢,我只是感兴趣.)
*(Audi->age)
Run Code Online (Sandbox Code Playgroud)
您不需要括号,因为前缀运算符的优先级非常低:
*Audi->age
Run Code Online (Sandbox Code Playgroud)
从语法上讲,不,除非您想编写一个函数或宏来执行此操作。你可以,但如果你问我,就使用访问器。另外,您不想在堆上分配大多数对象。只需将它们声明为type foo;ortype foo = type()并让它们位于堆栈中即可。除非有特定的充分理由,否则不应通过动态分配将内容放入堆上,因为动态分配的开销很高。
| 归档时间: |
|
| 查看次数: |
6815 次 |
| 最近记录: |