变量的生存期和可见性
来源:互联网 发布:工商总局网络教育平台 编辑:程序博客网 时间:2024/05/16 15:58
在下面程序中体现了变量的生存期和可见性
#include<iostream> using namespace std; int i = 1; //i为全局变量,具有静态生存期 int main() { static int a; //a为静态局部变量,具有全局寿命,局部可见 int b = -10; //b,c为局部变量,具有动态生存期 int c = 0; void other(void); cout << "-----MAIN-----\n"; cout << "i:" << i << "a:" << a << "b:" << b << "c:" << c << endl; c = c + 8; other(); cout << "-----MAIN-----\n"; cout << "i:" << i << "a:" << a << "b:" << b << "c:" << c << endl; i = i + 10; other(); } void other(void) { static int a = 2; static int b; //a,b为静态局部变量,具有全局寿命,局部可见,只有第一次进入函数时被初始化 int c = 10; //c为局部变量,具有动态生存期,每次进入函数都初始化 a = a +2; i = i +32; c = c + 5; cout << "------OTHER-----\n"; cout << "i:" << i << "a:" << a << "b:" << b << "c:" << c << endl; b = a; }
类的对象之间,的不同属性为对象的“实例属性”。
此外,面向对象方法中还有类属性的概念。如果某个属性为整个类所拥有,则用static关键字来声明为静态成员。
#include<iostream> using namespace std; class Point { public: Point(int xx = 0, int yy = 0) {X = xx; Y = yy; countP++; } Point(Point &p); ~Point() {countP--;} int GetX() {return X;} int GetY() {return Y;} void GetC() {cout << "Objective id =" << countP << endl;} private: int X,Y; static int countP; //静态数据成员声明,用于记录点的个数 }; Point :: Point(Point &p) { X = p.X; Y = p.Y; countP++; //在构造函数中对countP累加,所有对象共同维护同一个countP } int Point :: countP = 0; int main() { Point A(4,5); cout << "Point A," << A.GetX() << "," << A.GetY(); A.GetC(); Point B(A); cout << "Point B," << B.GetX() << "," << B.GetY(); B.GetC(); }
- 变量的生存期和可见性
- c++变量的作用域、生存期和可见性
- 变量的生存期与可见性
- 可见性和生存期的比较
- 可见性和生存期
- 变量的作用域,可见性与生存期
- 对象的生存期——变量的生存期与可见性
- 可见性与生存期
- 可见性与生存期
- 存储类型、作用域、可见性和生存期C++
- 变量的生存期和作用域
- 变量的作用域和生存期
- 变量的存储方式和生存期
- 变量的作用域和生存期
- 变量的生存期
- 变量的生存期
- 变量的生存期
- 作用域,可见性,生存期。
- SOA 快速指南 1 2 3(转IBM developerWorks 中国) 3
- SOA 快速指南 1 2 3(转IBM developerWorks 中国) 4
- DataGridView使用技巧—导出Excel表格
- jQuery学习19---事件中bind与unbind
- 基于ARM6410-Ubuntu的NFS挂载方法及驱动模块加载方法
- 变量的生存期和可见性
- Mark_IOS技术讨论群官方说明
- List与Set的区别
- dede “上一篇”、“下一篇”链接的获取
- 安装 SQL SERVER MsiGetProductInfo 无法检索 Product Code 解决方案
- 【转】ubuntu的root密码
- 黑马程序员__ 基本数据类型的自动拆箱和装箱
- 3 CLuaScriptMgr单例设计
- Linux 的 initrd (linuxrc,init)