类里面定义一个指向自己的静态成员指针变量
2014-06-15 13:41
393 查看
代码:
class a
{
public:
void printa() { cout<<"class a";}
public:
static a* my;
}
解释:
在类里面定义自己的一个静态变量,当这个类的所有对象都需要与某个同类的对象发生关系(不要想歪了……)时,就这么用。这个静态成员一般是全局存在的(废话),而且有特殊地位的对象。有一个很形象的例子与此类似:
好比有一个部落,对部落里的人,可以用 class CHuman 来抽象,但是这个部落里有个特殊的人,那就是这个部落的始祖,例如穆罕穆德。这个特殊的人当然也是 class CHuman 的对象,但区别是他同 CHuman 的所有对象都有关联,或者说 CHuman 的所有对象都和这个对象有关联————所有人都必须时刻记着始祖,而且祷告时都必须“引用”始祖对象,遇到灾难时更要祈求始祖的保佑,吃饭前也要“引用”他的名字……
显然,这个部落的所有成员都与这个特殊成员存在关联(用UML的术语,叫“链接”),对这种模式进行抽象的最佳方式,就是在 class CHuman 内部定义一个“本类”的静态对象(或该对象的指针或引用)。每个成员都可以时刻(而且是“先天”的,不可被“俗世”所篡改的)与始祖发生联系,从他那里汲取神秘的力量……
class a
{
public:
void printa() { cout<<"class a";}
public:
static a* my;
}
解释:
在类里面定义自己的一个静态变量,当这个类的所有对象都需要与某个同类的对象发生关系(不要想歪了……)时,就这么用。这个静态成员一般是全局存在的(废话),而且有特殊地位的对象。有一个很形象的例子与此类似:
好比有一个部落,对部落里的人,可以用 class CHuman 来抽象,但是这个部落里有个特殊的人,那就是这个部落的始祖,例如穆罕穆德。这个特殊的人当然也是 class CHuman 的对象,但区别是他同 CHuman 的所有对象都有关联,或者说 CHuman 的所有对象都和这个对象有关联————所有人都必须时刻记着始祖,而且祷告时都必须“引用”始祖对象,遇到灾难时更要祈求始祖的保佑,吃饭前也要“引用”他的名字……
显然,这个部落的所有成员都与这个特殊成员存在关联(用UML的术语,叫“链接”),对这种模式进行抽象的最佳方式,就是在 class CHuman 内部定义一个“本类”的静态对象(或该对象的指针或引用)。每个成员都可以时刻(而且是“先天”的,不可被“俗世”所篡改的)与始祖发生联系,从他那里汲取神秘的力量……
相关文章推荐
- C#--第九周实验--任务2--定义一个静态成员方法,该方法实现字符串反转。
- 定义一个静态成员方法,该方法用于提取文件名
- C#--第九周实验--任务3--定义一个静态成员方法,使用Random实现从一组数中随机抽取n个不重复的数。
- C#--第九周 任务2--定义一个静态成员方法,该方法实现字符串反转
- 定义一个空类型,里面没有任何成员变量和成员函数。对该类型求sizeof 结果?
- 为什么C++类定义中,数据成员不能被指定为自身类型,但可以是指向自身类型的指针或引用?为什么在类体内可以定义将静态成员声明为其所属类的类型呢 ?
- C#--第九周 任务3--定义一个静态成员方法,使用Random实现从一组数中随机抽取n个不重复的数
- C++ 单例模式中处理在类中声明一个指向一个自己的指针,在编译时显示定义的指针未定义的处理办法
- 定义一个静态成员方法,该方法实现字符串反转
- 工厂模式:封装对象的创建(一、在基类中定义一个静态成员函数)
- C#--第九周实验--任务1--定义一个静态成员方法,该方法用于提取文件名。
- C#--第九周 任务1--定义一个静态成员方法,该方法用于提取文件名
- 定义指向类成员函数和类静态成员函数的指针
- C++程序设计实验报告(二十)---实现冒泡排序算法,并将之定义为一个函数,其中参数是指向数组的指针变量
- 定义一个员工类,自己分析出几个成员,
- Javascript 构造函数,公有,私有特权和静态成员定义方法
- #defind 语句也可以定义绝对内存空间,用以指向一个固定的字
- 一个关于继承关系中静态快、成员变量、构造体代码的执行顺序的Java代码
- 习题4:编写一个控制台应用程序,定义一个类MyClass,类中包含有public、private以及protected数据成员及方法。
- 我在一个类里面 定义了1000个常量或者1000个静态变量,在程序启动后,谁占的内存多