c++类中 各种成员的生命周期?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c++类中 各种成员的生命周期?相关的知识,希望对你有一定的参考价值。

类中普通成员变量(包括private,protected,和public类型),还有类中静态成员变量的生命周期,还有类的成员函数中定义的变量的生命周期,各是什么呀?在类的析构函数调用时,都能析构掉以上的哪些成员啊?上述哪些成员的生命周期是整个程序的生命周期?哪些具有文件作用域呀?高手们多多赐教啊!!!

静态变量的生命周期是整个程序的生命周期。
析构函数析构的是动态申请的内存。
而类中的成员变量是在类的对象声明时创建,在对象生存期结束后截止。
参考技术A c++类里面的变量类型,仅仅是对外部调用的使用和继承时的使用作了规定,关于他们的生命周期,其实和c语言是基本相同的。静态成员变量是有整个程序的生命周期的,而且一个类中的静态成员,无论你生命多少个对象,使用的都是同一个静态成员,如:
class A

static x;

class A a;
class A b;
实际上
a.x =b.x
在析构函数中出静态成员由系统释放外,其他成员都可以析构。
参考技术B 标识符的作用域分为:函数作用域,文件作用域,块作用域,函数原型作用域,类作用域,名字空间作用域
1.声明于任何函数或者类之外的标识符具有文件作用域.
2.标签是唯一具有函数作用域的标识符.标签主要用于goto语句中.
3.在一个语句块中声明的标识符具有块作用域.声明为static的局部变量具有块作用域.
4.函数原型参数列表中的标识符是唯一具有函数原型作用域的标识符.
5.标识符的存储类别并不影响标识符的作用域.
6.类成员的作用域与类成员的可见性级别是两回事,并且它们并不互相影响。比如类的private成员,在类的客户中虽然不能访问,但并不表示它们不存在,它们仍然在它们自身的作用域内动作。

以上是关于c++类中 各种成员的生命周期?的主要内容,如果未能解决你的问题,请参考以下文章

Java中线程的生命周期

第八十二课线程的生命周期

在派生类中管理线程生命周期

C语言中,哪种存储类的作用域与生命周期是不一致的?

面试刷题30:SpringBean的生命周期?

Servlet 执行流程 生命周期 ServletConfig 线程安全