请详细说明以下四种的不同之处,具体点,最要好有列子。哪种时候用哪种!

[复制链接]
查看11 | 回复1 | 2013-2-25 13:55:42 | 显示全部楼层 |阅读模式
第一种:Geometry geom_array[MAX];因为定义这个数组必然会创建这些对象,那么就会调用构造函数,因此,这种情况要求类Geometry必须有无参数构造函数,否则编译不了。试想,如果构造函数需要传参数,那么怎么一一传给这MAX个对象?然后另一点,这个数组只能保存Geometry类的对象,而不能保存它的子类的对象,因为数组在创建的时候内存已经分配好了,如果保存子类对象,子类对象比父类大(一般情况)会导致子类特有的数据被截断,丢失数据。如果满足构造函数的条件,也不会保存子类建议用这种。第二种:Geometry* geom_array[MAX];保存指针,定义这个数组的时候并没有创建对象,所以如果类Geometry没有默认构造函数也可以创...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行