Class 创建没有变量的类对象
所以我创造了我的汽车。然后,我从我的车上为一个物体做了一个变量audi。一切都很好,但我注意到,我可以创建一个引擎值为50的对象,而无需为其指定变量。那么现在我如何访问该对象呢Class 创建没有变量的类对象,class,oop,object,c++14,Class,Oop,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 e
#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);
}
你不能!当你尝试的时候,它已经死了。Cars50是一个临时变量,其生命周期在其完整表达式结束时结束,也就是在 你不能!当你尝试的时候,它已经死了。Cars50是一个临时变量,其生命周期在其完整表达式结束时结束,也就是在 您需要一起完成,如下所示:
Cars(50).getStatus();
否则,您将无法引用您的50 m_发动机汽车
应忠实地使用此临时文件。请阅读中的更多内容,您需要一起完成,如下所示:
Cars(50).getStatus();
否则,您将无法引用您的50 m_发动机汽车
应忠实地使用此临时文件。在中阅读更多信息,这取决于您希望何时访问对象
Cars(50);
通过这段代码,您可以创建一个临时对象,该对象仅在当前语句i的执行期间存在。E直到代码的执行通过分号为止
Cars(50);
// I want to access the object here
在这种情况下:太晚了。临时文件已经被销毁,不再存在。再也没有机会回去了。但是,只要对象存在,您就可以使用它。G对其调用成员函数或将其传递给另一个函数:
Cars(10).doSomething();
// but right now (after the semicolon), the car doesn't exist any more
doSomethingElse(Cars(12));
// again, the object got destroyed
请注意,在上面的示例中,您创建了两个不同的实例,每个实例在到达分号时停止存在。也要注意,此时会调用对象的析构函数。这取决于您希望何时访问对象
Cars(50);
通过这段代码,您可以创建一个临时对象,该对象仅在当前语句i的执行期间存在。E直到代码的执行通过分号为止
Cars(50);
// I want to access the object here
在这种情况下:太晚了。临时文件已经被销毁,不再存在。再也没有机会回去了。但是,只要对象存在,您就可以使用它。G对其调用成员函数或将其传递给另一个函数:
Cars(10).doSomething();
// but right now (after the semicolon), the car doesn't exist any more
doSomethingElse(Cars(12));
// again, the object got destroyed
请注意,在上面的示例中,您创建了两个不同的实例,每个实例在到达分号时停止存在。还要注意,此时会调用对象的析构函数。Cars50.getStatus;例如,我试过了,它激活了构造函数,那么它会重新创建吗?你在创建一个对象,所以它当然会使用构造函数。我不确定你期望的是什么,也不确定你所说的“重新创建”是什么意思。我的意思是,它应该已经被创建了。我使用Cars50一次,然后在下一行Cars50.getStatus,两次我都得到一辆新车。对,你已经使用了Cars50两次,所以创建了两个对象。如果你想创建一个对象并让它保持不变,那么你需要一个变量。这些没有变量的对象被称为临时对象,因为它们不会停留很长时间;例如,我试过了,它激活了构造函数,那么它会重新创建吗?你在创建一个对象,所以它当然会使用构造函数。我不确定你期望的是什么,也不确定你所说的“重新创建”是什么意思。我的意思是,它应该已经被创建了。我使用Cars50一次,然后在下一行Cars50.getStatus,两次我都得到一辆新车。对,你已经使用了Cars50两次,所以创建了两个对象。如果你想创建一个对象并让它保持不变,那么你需要一个变量。这些没有变量的对象被称为临时对象,因为它们不会停留很长时间;?或者一些功能卡50@john我认为现在OP指的是在那一行之后,没有修改,即问题中有一个空行。我从你的评论中得知,我是这里最笨的一个。你可能是对的,不会是第一个问问题不清楚的新手。那么Cars50.getStatus;,有什么问题吗;?或者一些功能卡50@john我认为现在OP指的是在那一行之后,没有修改,即问题中有一个空行。我从你的评论中得知,我是这里最笨的一个。你可能是对的,我不会是第一个以不清楚的方式问问题的新手。