在C++中对象是什么时候创建的? 如果C++中的程序执行在main函数中启动,那么在执行时生成程序类的对象是什么时候? #include<iostream> using namespace std; class programming { private: int variable; public: void input_value() { cout << "In function input_value, Enter an integer\n"; cin >> variable; } void output_value() { cout << "Variable entered is "; cout << variable << "\n"; } }; programming object; main() { object.input_value(); object.output_value(); return 0; }

在C++中对象是什么时候创建的? 如果C++中的程序执行在main函数中启动,那么在执行时生成程序类的对象是什么时候? #include<iostream> using namespace std; class programming { private: int variable; public: void input_value() { cout << "In function input_value, Enter an integer\n"; cin >> variable; } void output_value() { cout << "Variable entered is "; cout << variable << "\n"; } }; programming object; main() { object.input_value(); object.output_value(); return 0; },c++,C++,有人能帮忙吗?它是在main启动之前创建的。在C++中,一些程序执行可以在main .< /p> 之前发生,因为对象是静态的,即全局变量,当全局构造函数运行时,即在主开始执行之前,它的构造函数被执行。 在main中,程序从代码开始,但事情发生在这之前。一些编译器/环境会在main的开头添加一些额外的代码来创建全局对象,在其他情况下,创建全局是在main之前运行的代码。您真正需要关心的是,它发生在任何代码之前 但是,您不能依赖于在初始化其他全局对象之前初始化全局对象

有人能帮忙吗?

它是在main启动之前创建的。在C++中,一些程序执行可以在main .< /p> 之前发生,因为对象是静态的,即全局变量,当全局构造函数运行时,即在主开始执行之前,它的构造函数被执行。

在main中,程序从代码开始,但事情发生在这之前。一些编译器/环境会在main的开头添加一些额外的代码来创建全局对象,在其他情况下,创建全局是在main之前运行的代码。您真正需要关心的是,它发生在任何代码之前


但是,您不能依赖于在初始化其他全局对象之前初始化全局对象
C++不要求以任何特定顺序创建全局对象。唯一的保证是它们将在调用main之前创建。也就是说,假设全局构造函数基本上是随机调用的

如果作为指针执行,则在执行新操作时会创建指针。如果创建时没有指针,则在程序初始化时会在堆栈上创建。对象可能不在堆栈上。@demonofnight您是说在启动main之前?@Aparan,否,它是在程序加载到ram时创建的,在这个特定的scenario@Aparan规则并不愚蠢。当你回答这些问题时,你会发现它们很有价值。你可以依靠同一翻译单元中的全局对象按照定义的顺序进行初始化。谢谢Pete,我不确定规则是什么,但我知道有足够的模糊性,不能依赖于某种特定的秩序。它不是静态的,它只是全球性的;静态在非成员的情况下意味着一些微妙的不同。但它确实有静态存储持续时间。