[英]C++ Object Pointer
我在這里需要一些幫助,您能告訴我如何獲取p2變量內容嗎? 我可以通過t1和p1獲得變量,但是我想使用p2獲得生命值和法力值。
#include <iostream>
using namespace std;
class Mage{
public:
int health;
int mana;
Mage(int health, int mana){
this->health = health;
this->mana = mana;
}
};
int main(){
Mage t1 = Mage(1,1);
Mage *p1 = &t1;
Mage **p2 = &p1;
cout << t1.health << endl;
cout << p1->health << endl;
cout << "how to print variable content with p2?" << endl;
return 0;
}
采用
cout << (*p2)->health << endl;
*
有兩個含義:聲明一個指針和取消引用一個指針。 但是,由於->
比*
具有更高的優先級,因此您需要將*p2
放入backets中。
您的示例建議您正在尋找一次取消引用兩次的單個運算符。 C ++中沒有。
有兩種方法可以實現您想要的。 第一個已經被提及並繼續
std::cout << (*p2)->health << std::endl;
第二點可以通過注意p1->health
等於(*p1).health
。 因此, (*p2)->health
等效於(**p2).health
。 連續:
std::cout << t1.health << std::endl;
std::cout << (*p1).health << std::endl;
std::cout << (**p2).health << std::endl;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.