C++ 对象数组和其它类型的数据数组有何异同点

如题所述

第1个回答  2012-12-13
原理是一样的,只是有一点不同的是,对象数组在分配内存的时候会多分配四个字节的长度用来表示数组中元素的大小。来自:求助得到的回答
第1个回答  2012-12-13
其实原理是一样的 没有太大的不同· 对象数组里边的元素是对象 其他类型的数组里边元素是其他类型 比如int型数组里边每个元素都是int型
第2个回答  2012-12-13
由于对象涉及默认构造函数、拷贝构造函数、复制操作符、继承等因素的影响,使用时需要注意以下几点:假设有个类为Animal,有个子类为Cat
1. Animal a[100]; // 会调用Animal的默认构造函数来初始化这100个对象,如果Animal不存在默认构造函数,那么这段代码无法通过编译;如果Animal含有纯虚函数,也无法实例化Animal所以这段也不能通过编译。
2. a数组不能存储Animal的子类Cat的对象,因为子类一般情况下都比父类多一些数据,所以占用的内存比较大,将Cat放入Animal会使Cat比Animal多的数据被切掉,更不可以用a数组的首地址赋给Cat*类型的指针,因为数组的数据是连续存放的不同的元素长度会导致子类指针计算时得到错误的地址。
3. a[0] = a[1];//这个操作会使用调用Animal的operator=(),等价于 a[0].operator=(a[1]),Animal可以自定义这个函数的行为。拷贝构造函数同理。本回答被提问者和网友采纳
第3个回答  2012-12-13
单从数组方面讲,没有任何不同点,你问所谓得“异同”得目的是什么?
相似回答
大家正在搜