对象数组的元素可以是不同类的对象(c++中,对象数组的元素可以是不同类的对象,这句话对吗)

2023-12-07 21:30:11 :72

对象数组的元素可以是不同类的对象(c++中,对象数组的元素可以是不同类的对象,这句话对吗)

大家好,如果您还对对象数组的元素可以是不同类的对象不太了解,没有关系,今天就由本站为大家分享对象数组的元素可以是不同类的对象的知识,包括c++中,对象数组的元素可以是不同类的对象,这句话对吗的问题都会给大家分析到,还望可以解决大家的问题,下面我们就开始吧!

本文目录

c++中,对象数组的元素可以是不同类的对象,这句话对吗

不对。首先数组的元素类型必须统一数组的定义: 元素类型 数组名之所以要统一,是因为要为数组分配空间,空间的分配就是类型*数组大小我看了楼上说的,虽然指针编译不会出错,但是楼上说的方法是不能在实际中使用的。原因:如果定义的是派生类的数组,那么元素可以是基类。但是如果像楼上,定义的是基类的数组,却存放派生类的元素,那么实际使用中,派生类的size是一定大过基类的,但是分配空间时确实按照基类来分配,所以每一个派生类的对象只有基类的内存,那么派生类中其他的部分就自然的缺失了。

请问java不同类的对象怎么放在同一个数组,然后如何对这个数组进行遍历

数组只能限定为某一个类型,即数组内的所有元素都是相同类型的。不同的类就意味着数据类型不同,不可能放在一起。

对象数组的元素可以是不同类的对象吗

对c++,可以,比如A* aArray;class B 继承class A,A* a = new A();B* b = new B();aArray = a;aArray = b;直接用对象也是可以的,不会出错,其它的情况暂时没有想到。

C++中,对象数组的元素可以是不同类的对象吗

不能直接支持。提供几个替代办法:1、用一个共有基类统一所有打算放在一起的对象,class base_{};class A:public base_{};class B:......base * pClassArray;2、可以用“联合”来代替 union utagObjCell{ classA * o_a; classB * o_b; }; utagObjCell unCell; 3、最新的C++规范里(TR1),支持“元胞”,其实就是很像Matlab里的CELL,用法: #include 《tuple》 #include 《iostream》 #include 《utility》 #include 《string》 typedef std::tr1::tuple《int, double, std::string》 Mytuple; int main() { Mytuple c0(0, 3.1416, "Hello!"); // display contents " 0 1 2 3" std::cout 《《 " " 《《 std::tr1::get《0》(c0); std::cout 《《 " " 《《 std::tr1::get《1》(c0); std::cout 《《 " " 《《 std::tr1::get《2》(c0); std::cout 《《 std::endl; // display first element " 0" std::tr1::tuple_element《2, Mytuple》::type val = std::tr1::get《2》(c0); std::cout 《《 " " 《《 val; std::cout 《《 std::endl; return (0); }

C#中一个数组中存储不同类型的对象问题

当然可以了 要是不可以的话 还用什么实现多态 恩对 因为如果你使用强制转换 就是那种括号的形式的话 如果转换失败的话会报错. 而如果用as操作符的话如果转坏失败的话就不会报错 而且用as可以使用if(b as a) 返回boolean类型的true或者falase让程序更加的严谨一些.

对象数组的初始化特点是什么

对象数组的初始化特点如下:1. 对象数组的元素是对象,每个元素都是对象数据类型的一个实例。2. 对象数组在声明时需要指定长度,即数组可以存储的对象数量。3. 对象数组可以通过循环语句进行初始化赋值,也可以通过直接赋值语句初始化。4. 对象数组的元素可以是同一个类的不同对象,也可以是不同类的对象。5. 对象数组的元素可以通过数组下标来访问和修改。6. 对象数组可以作为参数传递给方法,也可以作为方法返回值返回。总之,对象数组是Java中一种非常常用的数据结构类型,用于存储多个同类型的对象实例,方便使用和操作这些对象。初始化时需要注意数组长度和元素赋值,使用过程中需要注意数组下标和对象操作。

在JAVA中一个数组能够存储不同类型的元素吗 送分

各位大哥大姐么。。。当然可以啦。。。。数组怎么怎么就不可以啦。由于Java中的所有 对象 都 继承自 Object 对象所以你把数组定义成 Object数组不就可以了么。例如: Object; objs = new String("str"); objs = new Integer(8);但是,你要是获取这些元素的时候一定要记住他们原来的类型。例如: String str = (String) objs; Integer i = (Integer) objs;

数组里面的元素可不可以不同类型

在javascript中,数组中的每个元素的类型是可以不同的;这是因为javascript的弱数据类型决定数组中元素类型可以不同的;因为在javascript中,定义变量的时候不指定其数据类型,仅仅用一个var来表示当前对象是一个变量,至于其是什么类型的不指定,在后面使用的时候可以赋值不同的数值类型。

怎么在一个对象数组中写不同类得对象 希望能具体写出.

在Visual Studio .NET 2008环境中编译、运行通过,使用VC++开发:#include "stdafx.h"#include "iostream"using namespace std;//抽象基类CRoleclass CRole{protected: char *name;public: CRole(char *name) { this-》name = name; } ~CRole() { this-》name = NULL; } virtual void printInfo() = 0;};//飞机类class CPlane : public CRole{public: CPlane(char *name):CRole(name){} void printInfo() { cout《《"CPlane\t"《《name《《endl; }};//坦克类class CTank : public CRole{public: CTank(char *name):CRole(name){} void printInfo() { cout《《"CTank\t"《《name《《endl; }};//子弹类class CBullet : public CRole{public: CBullet(char *name):CRole(name){} void printInfo() { cout《《"CBullet\t"《《name《《endl; }};int _tmain(int argc, _TCHAR* argv){ CRole *arr; //3架飞机、2部坦克,10颗子弹 int i; arr = new CPlane("歼10 1号"); arr = new CPlane("歼11 1号"); arr = new CPlane("歼10 2号"); arr = new CTank("99式 1号"); arr = new CTank("96式 1号"); arr = new CBullet("5.45mm 1号"); arr = new CBullet("5.8mm 1号"); arr = new CBullet("5.45mm 2号"); arr = new CBullet("5.8mm 2号"); arr = new CBullet("5.45mm 3号"); arr = new CBullet("5.8mm 3号"); arr = new CBullet("5.45mm 4号"); arr = new CBullet("5.8mm 4号"); arr = new CBullet("5.45mm 5号"); arr = new CBullet("5.8mm 5号"); for(i=0; i《15; i++) { arr-》printInfo(); } return 0;}

c++中,对象数组的元素可以是不同类的对象,这句话对吗的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于c++中,对象数组的元素可以是不同类的对象,这句话对吗、c++中,对象数组的元素可以是不同类的对象,这句话对吗的信息别忘了在本站进行查找哦。

对象数组的元素可以是不同类的对象(c++中,对象数组的元素可以是不同类的对象,这句话对吗)

本文编辑:admin
Copyright © 2022 All Rights Reserved 威海上格软件有限公司 版权所有

鲁ICP备20007704号

Thanks for visiting my site.