首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

请教类里面有它自身的静态类类型对象,代表着什么

2012-02-29 
请问类里面有它自身的静态类类型对象,代表着什么?classA{public:intastaticintbstaticAx}上面的代码能

请问类里面有它自身的静态类类型对象,代表着什么?
class   A
{public:
                int   a;
                static   int   b;
                static   A   x;};

上面的代码能编译通过.我想问一下,如果在一个类里面声明一个静态对象,这个对象的类型是它的类类型(如上面的x对象).这样做有什么好处吗?或者说在哪个方面需要这样声明一个A类?

[解决办法]
没什么特别的
这种情况下,可以通过类中的静态变量,用一个get方法配合,提供一个常量对象,
比如:

class People{
private:
static People superMan( "毛泽东 ");
public:
People(string name);
getSuperMan(return superMan);
}
[解决办法]
class A
{public:
int a;
static int b;
static A x;};
--------------------------------------------
这种形式在语法上是允许的,但是如果去掉A x前面的static,则引起“循环定义”,编译错误,至于这种写法的实际意义,只能在具体实现中具体分析。
[解决办法]
这样做有什么好处吗?或者说在哪个方面需要这样声明一个A类?
========================================================
一个显而易见的好处是,全局变量x不会受到其他全局变量命名的影响(类中公有的静态变量实际是全局变量).而且在逻辑上容易归类,容易使用.

热点排行