c++ 课本上的一句话我看不懂 在对类的静态私有数据成员初始化的同时,还可以引用类的其他私有成员.例如,如果一个类T 存在类型为T的静态私有对象,那么可以引用该类的私有构造函数将其初
来源:学生作业帮助网 编辑:六六作业网 时间:2024/12/22 13:34:42
c++ 课本上的一句话我看不懂 在对类的静态私有数据成员初始化的同时,还可以引用类的其他私有成员.例如,如果一个类T 存在类型为T的静态私有对象,那么可以引用该类的私有构造函数将其初
c++ 课本上的一句话我看不懂
在对类的静态私有数据成员初始化的同时,还可以引用类的其他私有成员.
例如,如果一个类T 存在类型为T的静态私有对象,那么可以引用该类的私有构造函数将其初始化.
c++ 课本上的一句话我看不懂 在对类的静态私有数据成员初始化的同时,还可以引用类的其他私有成员.例如,如果一个类T 存在类型为T的静态私有对象,那么可以引用该类的私有构造函数将其初
这个问题怎么说呢
首先 明确一下
class T{
private:
static T a;
};
这里的static T a 和static int a 是一样的东西 ——类T的静态数据成员
那么既然是私有的 静态数据成员变量
在内存里 静态变量存放在静态存储区.放在静态存储区的数据在整个程序运行其间持续有效
你可以把静态成员变量看做是一个作用域是类的范围内的全局变量
#include "stdafx.h"
#include
using namespace std;
class T{
public:
int a;\x05T(){a=0;}
T(){};
int getb(){return b.suma();}
private:
static T b;
int suma(){a=(b.a+1) ;return a;}
};
T T::b;//利用T类的构造函数初始化了静态成员b
int _tmain(int argc,_TCHAR* argv[])
{int x,y;
cin>>x;
T *c=new T(); //当我们创建了T的一个实例c时 我们可以发现c的静态私有成员b的情况 b的公有成员a的值已被初始化为0 当我们调用 c的公有函数 getb时 getb调用了b私有成员suma对b的公有成员a加了1并且返回a的值
x=c->getb();
couty;
return 0;
我想这个例子能够大概说明白吧~