创建没有变量的类对象

due*_*dak 1 oop class object c++14

因此,我创建了“汽车”类。然后,我为我的课堂汽车中的对象创建变量(audi)。一切都很好,但我注意到我可以创建一个对象(引擎值为50),而无需指定要保存的变量。那么现在如何访问该对象?

#include <iostream>

using namespace std;

class Cars
{
public:
    int getStatus();
    Cars(int engine=5);
private:
    int m_engine;
};
Cars::Cars(int engine)
{
    m_engine=engine;
    cout<<"A new car is made."<<endl;
}
Cars::getStatus()
{
    cout<<m_engine<<endl;
}

int main()
{
    Cars audi(10);
    audi.getStatus();
    Cars(50);

}
Run Code Online (Sandbox Code Playgroud)

Aco*_*gua 5

这取决于您何时要访问对象。

Cars(50);
Run Code Online (Sandbox Code Playgroud)

使用这段代码,您将创建一个临时对象,该对象仅在当前语句执行期间存在(即,直到代码执行通过分号为止)。

Cars(50);
// I want to access the object here
Run Code Online (Sandbox Code Playgroud)

在这种情况下:为时已晚。该临时文件已被销毁,不再存在。没有机会回到它。但是,您可以使用对象,只要它存在就可以,例如,在对象上调用成员函数或将其传递给另一个函数:

Cars(10).doSomething();
// but right now (after the semicolon), the car doesn't exist any more
doSomethingElse(Cars(12));
// again, the object got destroyed
Run Code Online (Sandbox Code Playgroud)

请注意,在上面的示例中,您创建了两个不同的实例,每个实例在到达分号时都不再存在。同样要注意,对象的析构函数在此时间点被调用。