函数内Static初始化的用法
2006-03-04 14:09
441 查看
如果想第一次使用的时候再初始化,而程序正常退出的时候,再释放资源。那么应该将其放到某个函数中,作为static声明。
#include "Object.h"
#include "Container.h"
#include <iostream>
using namespace std;
static Object sglobal(" static global");
Object global(" global");
void func()
{
cout << " In func()" << endl;
Container cc;
cout << " Out func()" << endl;
}
void func2()
{
cout << " In func2()" << endl;
Container cc;
cout << " Out func2()" << endl;
}
int main()
{
cout << "main() begin." << endl;
Object local(" local");
func();
func2();
//Container cc;
cout << "main() end." << endl;
return 0;
}
输出是:
C:/Project/CPP/LearnCpp/debug>InitializationOrder.exe
static global initializing...
global initializing...
object in container initializing...
global in container initializing...
static global in container initializing...
main() begin.
local initializing...
In func()
Static In Container Constructor initializing...
In Container Constructor initializing...
Initializing Container ...
In Container Constructor releasing...
Out func()
Releasing Container ...
In func2()
In Container Constructor initializing...
Initializing Container ...
In Container Constructor releasing...
Out func2()
Releasing Container ...
main() end.
local releasing...
Static In Container Constructor releasing...
static global in container releasing...
global in container releasing...
object in container releasing...
global releasing...
static global releasing...
#include "Object.h"
#include "Container.h"
#include <iostream>
using namespace std;
static Object sglobal(" static global");
Object global(" global");
void func()
{
cout << " In func()" << endl;
Container cc;
cout << " Out func()" << endl;
}
void func2()
{
cout << " In func2()" << endl;
Container cc;
cout << " Out func2()" << endl;
}
int main()
{
cout << "main() begin." << endl;
Object local(" local");
func();
func2();
//Container cc;
cout << "main() end." << endl;
return 0;
}
输出是:
C:/Project/CPP/LearnCpp/debug>InitializationOrder.exe
static global initializing...
global initializing...
object in container initializing...
global in container initializing...
static global in container initializing...
main() begin.
local initializing...
In func()
Static In Container Constructor initializing...
In Container Constructor initializing...
Initializing Container ...
In Container Constructor releasing...
Out func()
Releasing Container ...
In func2()
In Container Constructor initializing...
Initializing Container ...
In Container Constructor releasing...
Out func2()
Releasing Container ...
main() end.
local releasing...
Static In Container Constructor releasing...
static global in container releasing...
global in container releasing...
object in container releasing...
global releasing...
static global releasing...
相关文章推荐
- 函数内Static初始化的用法
- php static 关键字在 函数中的用法
- static关键字与函数指针的用法
- C++11中__func__,__cplusplus,long long类型,static_assert,noexcept,快速初始化成员变量用法
- C++ 模板类中的static变量和函数 初始化
- 内存初始化函数memset()用法详解
- C++和JAVA 的static函数用法的区别
- 静态成员函数和static的作用及用法
- C#中修饰符用法“virtual(虚拟函数)、override(函数复写)、static(静态函数)、abstract(抽象函数)、sealed(密封函数)”
- C++函数中的static变量初始化及析构顺序
- 指向类非static的数据成员和函数的指针用法
- @classmethod, @staticmethod和@property这三个装饰器的使用对象是在类中定义的函数。下面的例子展示了它们的用法和行为:
- 内核模块初始化函数static int __init init_func() 和退出函数 static void _exit exit_func() _init 和_exit 的理解
- 类的初始化练习和static关键字的用法
- Java中初始化对象的顺序,静态代码块的用法以及Static的用法详解
- Java中static的用法,初始化块
- memset 函数初始化用法
- Java中初始化对象的顺序,静态代码块的用法以及Static的用法详解
- memset 函数初始化用法
- 内存初始化函数memset()用法详解