我需要一些帮助,你能告诉我如何获得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;
}发布于 2017-04-24 16:35:34
使用
cout << (*p2)->health << endl;*有两个含义:声明指针和取消引用指针。但是,由于->的优先级高于*,所以您需要将*p2放入杆菌中。
发布于 2017-04-24 16:36:09
您的例子表明,您正在寻找一个单独的操作符,该操作符一次取消两次。在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;https://stackoverflow.com/questions/43593218
复制相似问题