c++中对象的类型

Type of object in C++

本文关键字:类型 对象 c++      更新时间:2023-10-16

我得到了一个代码,简要如下首先在类中定义一个结构体:

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

。..然后定义这个结构体的对象

Energy* Prop;

。..然后用它来写如下条件

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

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

谢谢

注意变量声明中Energy后面的星号

Energy* Prop;

这意味着Prop的类型是Energy*,这意味着它是一个指向Energy类型的指针。指针可以指向一个实例(有效或无效,但不在本问题的范围内),也可以不指向任何对象,也称为null。

当在条件中使用时,指针的工作原理就像一个整数值,如果它是零(或null),它将为假,否则为真。

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

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

编辑:如果你正在使用c++ 11或更高版本,请查看nullptr

Prop是指向Energy结构体的指针,这意味着它可以为空(不指向任何东西)。指针不为空时为真。

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