在一个类内不可以定义自身类的对象,为什么定义自身类的静态对象又是正确的
2008-12-26 16:08
260 查看
如果你在类的定义中使用自己的对象作为成员,那岂不是一个无穷无尽的递归定义吗? 你叫编译器怎么做?
如果你把他定义为静态的话,那么他其实是一个全局的变量,不属于类的成员.所以可以实现
在程序中,自身是不能调用自身的,所以,一个类内不可以定义自身类的对象。
因为静态对象表示的不是类某一对象的属性,而是类的属性,所以,定义自身类的静态对象又是正确的,而只有在定义类的属性是才要把对象定义为静态的!!!
如果你把他定义为静态的话,那么他其实是一个全局的变量,不属于类的成员.所以可以实现
在程序中,自身是不能调用自身的,所以,一个类内不可以定义自身类的对象。
因为静态对象表示的不是类某一对象的属性,而是类的属性,所以,定义自身类的静态对象又是正确的,而只有在定义类的属性是才要把对象定义为静态的!!!
相关文章推荐
- 为什么C++中的类不能定义自身类的对象,而java可以? 【转载】
- 为什么C++类定义中,数据成员不能被指定为自身类型,但可以是指向自身类型的指针或引用?为什么在类体内可以定义将静态成员声明为其所属类的类型呢 ?
- 为什么C++中的类不能定义自身类的对象,而java可以
- 用c++编写一个不能被继承的类(但是可以在类外部定义该类的对象)
- 为什么C++中的类不能定义自身类的对象?
- 为什么C++类定义中,数据成员不能被指定为自身类型,但可以是指向自身类型的指针或引用?
- final对象的生命周期为什么可以超越定义这个对象的方法?
- C++的类定义中,不能在类中定义自身类的对象,java中却可以
- Factory 定义一个接口,客户可以使用这个接口创建一个对象.同时,我们还可以控制对那个类进行实例化
- 为什么C语言的同一个文件中可以定义两个接口完全相同的函数?
- 为什么InetAddress类不能new初始化但可以定义对象:The constructor InetAddress() is not visible
- 一个用于多种数据库连接,并且可以反射出自定义类型对象的DBHelper
- 为什么类的定义中不能包含自身类型,而可以包含其自身的指针类型和引用类型
- 为什么不能从子函数中返回临时对象的指针和引用,却可以返回一个临时变量的值
- 为什么static成员的类型可以是类本身?又为什么非static成员被限定声明为其自身类对象的指针或引用?
- 【OC复合题】之定义一个学生类,需要有姓名,年龄,考试成绩三个成员属性,创建5个对象,属性可以任意值。(Objective-C)
- Python 里为什么函数可以返回一个函数内部定义的函数
- 在c++中,静态数据成员可以被非静态成员函数调用吗?如果可以调用的话那为什么还要定义静态成员函数呢
- 【c++】iostreeam中的类为何不可以直接定义一个无参对象呢
- 使用类的静态字段和构造函数,我们可以跟踪某个类所创建对象的个数。请写一个类,在任何时候都可以向它查询“你已经创建了多少个对象?”。