C ++中的对象类型

时间:2015-09-16 07:25:49

标签: c++ pointers object

我得到的代码简要如下 首先,他们在类中定义结构:

Struct Energy{
double elas;
double slip;
double dash;
}

。 。 。 然后他们定义了这个结构的对象

Energy* Prop;

。 。 。 然后他们用它来写下面的条件

if (!Prop){
Prop->elas = elas_;
Prop->slip = slip_;
Prop->dash = dash_;
}

让我感到困惑的是因为我知道道具的类型是能量。那么他们如何在if条件下使用它。我是C ++的新手,很多东西我都不懂。希望你们能帮助我吗?

谢谢

3 个答案:

答案 0 :(得分:3)

请注意变量声明中的能量之后的星号

Energy* Prop;

这意味着Prop的类型为Energy *,这意味着它是指向Energy类型的指针。指针可以指向一个实例(有效与否,但这不是这个问题的范围)或者什么都没有,也称为null。

在条件中使用时,指针的作用就像一个整数值,如果它为零(或为null),则为false,否则为true。

if (!prop)检查指针是否为空。

if (!prop) {
    // prop is null, handle error
}
else {
    // prop points to something, you can use it
}

编辑:如果您使用的是C ++ 11或更高版本,请查看nullptr

答案 1 :(得分:1)

Prop是一个能量结构的指针,这意味着它可以为null(无点)。指针如果不为空则为真。

答案 2 :(得分:0)

if (!Prop)表示if (Prop != 0)if (Prop != nullptr)