C 什么时候被调用
C++ when is the destructor called?
以下似乎是在C 中定义单例的推荐方法:
class Singleton {
private:
Singleton();
public:
static Singleton & get_instance() {
static Singleton instance;
return instance;
}
~Singleton() {
// destructor
}
Singleton(Singleton const&) = delete;
void operator=(Singleton const&) = delete;
}
现在,采用此功能:
void foo() {
Singleton & s = Singleton::get_instance();
}
我希望当Singleton实例不在该功能的范围中时会被调用,但事实并非如此。destructor什么时候被称为?
no,由于 get_instance()
返回 Singleton
对象的引用,因此将其引用保存到 s
,另一个引用中。这两个参考都指向一个静态单例对象,即:
static Singleton instance;
因此,这里只有1个对象,instance
。传递参考不会创建新对象,因此不会调用击曲线。
对象instance
将被销毁,因此,在程序终止时,它的破坏者将被调用(因为它是static
(。
相关文章:
- 什么时候调用组成单元对象的析构函数
- 什么时候调用析构函数
- boost odeint什么时候真正调用观测者
- 什么时候可以使用常量装饰调用我的重载函数?
- 什么时候用指针调用C++类构造函数
- 我不明白在这个例子中什么时候调用构造函数
- 调用boost.asio的异步函数时,线程是什么时候创建的
- 什么时候调用CMFCListCtrl::OnGetCellBkColor函数?
- C++什么时候是使用无默认构造函数与getter和setters与直接调用类中的变量的正确时机
- 如果绝对没有调用成员函数,是否允许使用不完整类型的向量?如果是这样,从什么时候开始
- 什么时候调用 glFlush 太频繁了
- C 什么时候被调用
- 被调用的函数究竟什么时候结束
- c++.系统调用move什么时候会失败
- 什么时候应该使用ASM调用
- c++中究竟什么时候调用析构函数?
- 谁能告诉我什么时候调用terminate(),什么时候调用unexpected() ?
- 在常量和非常量引用变量的情况下,什么时候决定调用哪个函数
- c++在什么时候调用类成员对象的构造函数?
- 在什么时候WM_ENDSESSION调用wParam为0