我找到了关于java的这个问题的一些答案,但没有特别关于c ++.所以我在Java中读到了首先创建对象,然后调用构造函数.我想知道这是否与c ++相同?此外,如果是这种情况,那么拥有默认构造函数有什么意义呢?是继承目的吗?
"对象创建"在不同语言中意味着不同的东西.但在C++中,最突出的问题是"对象生命何时开始".当一个对象的生命周期开始时,这意味着当它后来结束时(你删除它,或者如果它是一个堆栈对象,那么当它超出范围时),将调用析构函数.
如果对象的生命周期没有正式开始,那么如果它稍后超出范围,则不会调用析构函数.
C++解析如下:
有关对象生命周期的更多信息,您可能希望在标准/好的教科书中查看此问题,或者更好.
基本思想是,在C++中,我们尝试最小化分配内存和初始化之间的时间窗口 - 或者更确切地说,语言本身促进了"资源获取是初始化"的想法并使其成为可能非惯用于获取内存而不给它一个类型并初始化它.当通常编写代码时,例如,如果你有一个类型的变量A,你可以把它想象成"这指的是一个内存块A,一个构造函数A成功运行完成." 你通常不必考虑"这是一个大小的内存块A,但构造函数失败了,现在它是一个未初始化/部分初始化的无头blob".
| 归档时间: |
|
| 查看次数: |
2603 次 |
| 最近记录: |