簡體   English   中英

C ++對象指針

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM