博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
多个单例对象,析构顺序模拟
阅读量:4092 次
发布时间:2019-05-25

本文共 2055 字,大约阅读时间需要 6 分钟。

#include 
#include
using namespace std;struct StaticMember{
public: int age = 6; StaticMember() {
std::cout << "StaticMember()" << std::endl; } ~StaticMember() {
std::cout << "~StaticMember()" << std::endl; }};struct StaticMember2{
StaticMember2() {
std::cout << "StaticMember2()" << std::endl; } ~StaticMember2() {
std::cout << "~StaticMember2()" << std::endl; }};struct PlainMember{
PlainMember() {
std::cout << "PlainMember()" << std::endl; } ~PlainMember() {
std::cout << "~PlainMember()" << std::endl; }};struct PlainMember2{
PlainMember2() {
std::cout << "PlainMember2()" << std::endl; } ~PlainMember2() {
std::cout << "~PlainMember2()" << std::endl; }};struct StaticMember3{
StaticMember3() {
std::cout << "StaticMember3()" << std::endl; } ~StaticMember3() {
std::cout << "~StaticMember3()" << std::endl; }};class MyClass{
public: static MyClass *GetInstance() {
static MyClass a; return &a; } static StaticMember3*getStatic() {
static StaticMember3 pl3; return &pl3; } static void print() {
getStatic(); std::cout << "/* message */" << std::endl; }private: MyClass(); ~MyClass();public: PlainMember2 plainMember2; PlainMember plainMember; static StaticMember2 staticMember2; static StaticMember staticMember;};MyClass::MyClass(){
std::cout << "MyClass()" << std::endl;}MyClass::~MyClass(){
print(); std::cout << "~MyClass()" << std::endl; std::cout << "~MyClass():~StaticMember(),age:" << staticMember.age << std::endl;}StaticMember MyClass::staticMember;StaticMember2 MyClass::staticMember2;int main(int argc, const char **argv){
// std::cout << MyClass::GetInstance()->staticMember.age ; //<< std::endl; //std::cout << MyClass::getStatic() << std::endl; return 0;}

转载地址:http://yrcii.baihongyu.com/

你可能感兴趣的文章
【C#】利用Conditional属性完成编译忽略
查看>>
【Unity】微信登录后将头像存为bytes,将bytes读取成sprite图片
查看>>
【Unity】使用GPS定位经纬度
查看>>
【UGUI/NGUI】一键换Text/Label字体
查看>>
【C#】身份证本地验证
查看>>
【Unity】坑爹的Bug
查看>>
【算法】求数组中某两个数的和为目标值
查看>>
如何高效学习动态规划?
查看>>
动态规划法(六)鸡蛋掉落问题(一)
查看>>
LeetCode 887.鸡蛋掉落(C++)
查看>>
Dijkstra‘s algorithm (C++)
查看>>
奇异值分解(SVD)的原理详解及推导
查看>>
算法数据结构 思维导图学习系列(1)- 数据结构 8种数据结构 数组(Array)链表(Linked List)队列(Queue)栈(Stack)树(Tree)散列表(Hash)堆(Heap)图
查看>>
求LCA最近公共祖先的离线Tarjan算法_C++
查看>>
Leetcode 834. 树中距离之和 C++
查看>>
【机器学习】机器学习系统SysML 阅读表
查看>>
最小费用最大流 修改的dijkstra + Ford-Fulksonff算法
查看>>
最小费用流 Bellman-Ford与Dijkstra 模板
查看>>
实现高性能纠删码引擎 | 纠删码技术详解(下)
查看>>
scala(1)----windows环境下安装scala以及idea开发环境下配置scala
查看>>