c++ 课本上的一句话我看不懂 在对类的静态私有数据成员初始化的同时,还可以引用类的其他私有成员.例如,如果一个类T 存在类型为T的静态私有对象,那么可以引用该类的私有构造函数将其初
来源:学生作业帮助网 编辑:作业帮 时间:2024/07/14 09:28:01
![c++ 课本上的一句话我看不懂 在对类的静态私有数据成员初始化的同时,还可以引用类的其他私有成员.例如,如果一个类T 存在类型为T的静态私有对象,那么可以引用该类的私有构造函数将其初](/uploads/image/z/3732799-31-9.jpg?t=c%2B%2B+%E8%AF%BE%E6%9C%AC%E4%B8%8A%E7%9A%84%E4%B8%80%E5%8F%A5%E8%AF%9D%E6%88%91%E7%9C%8B%E4%B8%8D%E6%87%82+%E5%9C%A8%E5%AF%B9%E7%B1%BB%E7%9A%84%E9%9D%99%E6%80%81%E7%A7%81%E6%9C%89%E6%95%B0%E6%8D%AE%E6%88%90%E5%91%98%E5%88%9D%E5%A7%8B%E5%8C%96%E7%9A%84%E5%90%8C%E6%97%B6%2C%E8%BF%98%E5%8F%AF%E4%BB%A5%E5%BC%95%E7%94%A8%E7%B1%BB%E7%9A%84%E5%85%B6%E4%BB%96%E7%A7%81%E6%9C%89%E6%88%90%E5%91%98.%E4%BE%8B%E5%A6%82%2C%E5%A6%82%E6%9E%9C%E4%B8%80%E4%B8%AA%E7%B1%BBT+%E5%AD%98%E5%9C%A8%E7%B1%BB%E5%9E%8B%E4%B8%BAT%E7%9A%84%E9%9D%99%E6%80%81%E7%A7%81%E6%9C%89%E5%AF%B9%E8%B1%A1%2C%E9%82%A3%E4%B9%88%E5%8F%AF%E4%BB%A5%E5%BC%95%E7%94%A8%E8%AF%A5%E7%B1%BB%E7%9A%84%E7%A7%81%E6%9C%89%E6%9E%84%E9%80%A0%E5%87%BD%E6%95%B0%E5%B0%86%E5%85%B6%E5%88%9D)
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;
我想这个例子能够大概说明白吧~