导航:首页 > 源码编译 > 对象数组编译

对象数组编译

发布时间:2022-04-11 18:35:13

Ⅰ C++中对象数组的初始化问题

//当有自定义构造函数时,必须要有一个没参数的构造函数
#include<stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <string>
using namespace std;
class Stu
{
public :
Stu(); //必须要有
Stu(string name);
private:
string mName;
};
Stu::Stu()
{

}
Stu::Stu(string name)
{
mName = name;
}

void main()
{
Stu stu[10];
for(int i = 0; i < 10; ++i)
{
stu[i] = Stu("test");
}
}

Ⅱ 数组或对象经过编译后变成什么了。

数组 在程序层面 是一个标示符 该标示符表示了地址以及对该内存的数据访问形式 在内存区 分配了一块内存
对象 拥有函数区和成员区 对c++ 不熟 不过基本上对数据的访问都是类似的

Ⅲ c++中 关于对象数组的 我写的这个程序怎么编译不过啊 请大家 帮着看看 谢谢 多谢啊

你这个程序里面有两个错误
1,Box (int h=10,int w=12,int len=15)的int h=10后的逗号是中文输入的逗号,需要改成英文输入的逗号
2,如果你使用的是#include<iostream.h>则不需要下面的using namespace std;,如果你要使用下面的using namespace std;则上面包含的应该是#include<iostream>,这两种是不同的。
#include <iostream>//#include<iostream.h>
using namespace std;
class Box
{public:
Box (int h=10,int w=12,int len=15):height(h),width(w),length(len)
{}//Box (int h=10,int w=12,int len=15)
int volume();
private:
int height;
int width;
int length;
};
int Box::volume()
{return(height*width*length);
}
int main()
{Box a[3]={Box(10,12,15),
Box(15,18,20),
Box(16,20,26)};
cout<<"volume of a[0] is "<<a[0].volume()<<endl;
cout<<"volume of a[1] is "<<a[1].volume()<<endl;
cout<<"volume of a[2] is "<<a[2].volume()<<endl;
return 0;
}

java 简单编程 对象数组

下面是main方法的代码:
public static void main(String[] args)
{
Alone6_2 [] ob = new Alone6_2[10];

//建立第一个符合条件的对象
Alone6_2 a1 = new Alone6_2();
a1.setAB(1, 2);
//把这个对象放入数组第一个
ob[0] = a1;

//第一个对象上面建立,下面用循环生成剩下的9个
for (int i = 1; i < ob.length; i++)
{
//先新建出对象
Alone6_2 a = new Alone6_2();
//满足要求
int aFiled = ob[i-1].getA() + ob[i-1].getB();
int bFiled = ob[i-1].getA() * ob[i-1].getB();
//设置新建出来对象的a,属性
a.setAB(aFiled, bFiled);
//放入数组
ob[i] = a;
}

//开始输出数组,其实可以在上面的循环中,输出,
//为了清晰,这里在全部建立完对象后再循环一次输出

for (int i = 0; i < ob.length; i++)
{
Alone6_2 a = ob[i];
System.out.println("ob["+i+"]="+a.getA()+",ob["+i+"]="+a.getB());
}

}

注释已经说明了大部分,如果还有疑问可以继续讨论。

输出结果是:
ob[0]=1,ob[0]=2
ob[1]=3,ob[1]=2
ob[2]=5,ob[2]=6
ob[3]=11,ob[3]=30
ob[4]=41,ob[4]=330
ob[5]=371,ob[5]=13530
ob[6]=13901,ob[6]=5019630
ob[7]=5033531,ob[7]=1058399894
ob[8]=1063433425,ob[8]=-1642014574
ob[9]=-578581149,ob[9]=117143346

PS:后面几个出现负数,是因为int型的溢出了,题目的意思已经符合了。简单的解决办法是讲Alone对象中的a,b换成long类型即可

Ⅳ C++对象数组创建编译错误

要想创建数组:

  1. 必须有完整的类定义

  2. 类必须有不带参数的默认构造函数

因此

  1. 检查是否有不带参的构造函数

  2. 成员函数要用对象数组,那么在类的定义里声明这个成员函数,而不是定义这个函数(即不写函数体),直到整个类被完全定义。然后写成员函数的定义。

Ⅵ c++编程:对象数组

//class Object;

Object one, two, three;
Object array[3]={one, two, three}; //对象数据赋初值

Ⅶ c++怎么在头文件中定义对象数组,而在各个cpp文件中使用,而编译链接时不会提示重复定义

在你的头文件这么写
#ifndef XXX
#define XXX
你的代码
#endif
目的是让这个头文件只被包含一次,就不会提示重复定义了。

Ⅷ 对象数组的数组

关于可变长数组(VLA)的问题:原来的C标准中是不允许可变长数组出现的,也就是你说的那个n可变。但是在C99中,加入了对VLA的支持,也有不少编译器已经支持这个了,而且好像没有太多的人用这个可变长数组。
如果有过用其它语言编程的经历,那么想必会熟悉数组的概念。由于有了数组,可以用相同名字引用一系列变量,并用数字(索引)来识别它们。在许多场合,使用数组可以缩短和简化程序,因为可以利用索引值设计一个循环,高效处理多种情况。数组有上界和下界,数组的元素在上下界内是连续的。因为 Visual Basic对每一个索引值都分配空间,所以不要不切实际声明一个太大的数组。
此处数组是程序中声明的变量数组。它们不同于控件数组,控件数组是在设计时通过设置控件的 Index 属性规定的。变量数组总是连续的;与控件数组不同的是,不能从一个数组的中部加载或卸载数组元素。
一个数组中的所有元素具有相同的数据类型(在在C、C++、Java中都这样。但也并非所有涉及数组的地方都这样,比如在Visual Foxpro中的数组就并没这样的要求)。当然,当数据类型为 Variant 时,各个元素能够包含不同种类的数据(对象、 字符串 、数值等等)。 可以声明任何基本数据类型的数组,包括用户自定义类型(请参阅 “再论编程”中的“创建自己的数据类型”)和对象变量(请参阅“用对象编程”)。
如果要用户输入的是一个数组,一般是用一个循环,但是在输入前也需要固定数组的大小。
compact跟变长数组没有太大的关系,也应该用不到变长数组。因为一般的传数组到函数中就是传数组的地址和元素的个数的,那只是一个提示,不是要求。
原型可以这样写(假设数组的元素是type):
int compact(type *Array,int Count)
数组类型说明 在C语言中使用数组必须先进行类型说明。
数组说明的一般形式为: 类型说明符 数组名 [常量表达式],……; 其中,类型说明符是任一种基本数据类型或构造数据类型。 数组名是用户定义的数组标识符。 方括号中的常量表达式表示数据元素的个数,也称为数组的长度。 int a[10]; 说明整型数组a,有10个元素。
float b[10],c[20]; 说明实型数组b,有10个元素,实型数组c,有20个元素。
char ch[20]; 说明字符数组ch,有20个元素。

Ⅸ java对象数组问题

BiTreeNode[] bitreenode=new BiTreeNode[n]; 如果改成
BiTreeNode[] bitreenode;会出现编译错误,因为bitreenode没有初始化,并没有创建实例,java会强制限制禁止没有初始化的情况,但你可用=null初始化,到后面进行赋值。如果是对象数组,后面调用bitreenode时别忘了初始化对象,比如bitreenode=new BiTreeNode[3];否则执行bitreenode[i] = new BiTreeNode(s, bitreenode[l], bitreenode[r]);时出现空错误,试问:i到底是多少好呢?答案是任何整数都不行,必须初始化bitreenode对象数组。

略过这一点,从上面的代码看来,执行是可能发生数组越界异常,因为从
BiTreeNode[] bitreenode=new BiTreeNode[n]; 看来,调用bitreenode[i]时,i的取值范围为[0,n-1],后面有bitreenode[i]=new BiTreeNode(s,bitreenode[l],bitreenode[r]);之类的语句,也就是说从控制台输入的数字也就是后来赋值给l或r的那些数据不能超过这个范围!当然,如果不小心n<=0,运行时执行到调用bitreenode[i]时立即发生数组越界异常。如果保证从控制台输入的数字在[0,n-1],理论上是可以得到预想输出结果的。

Ⅹ C++编程:对象数组

你确定是对象数组的指针,而不是对象指针的数组?
假设类名叫Object

对象的数组的指针:
Object objects[100];

Object (*pObjects)[100]; // 就是它

pObjects = &objects; // 必须与objects的长度相同才能这样赋值

对象指针的数组:

Object* objects[100];
满意请采纳。

阅读全文

与对象数组编译相关的资料

热点内容
windows核心编程光盘 浏览:617
美女和程序员相亲视频 浏览:653
你熟悉哪些算法 浏览:767
杭州有什么服务器地址 浏览:1002
为什么大力推行反诈app 浏览:15
win10如何加密系统软件 浏览:19
ipad看扫描pdf 浏览:686
淘宝检测云服务器 浏览:162
孝庄命令鳌拜救康熙 浏览:263
文件压缩还是太大 浏览:6
文件加密器91好破解吗 浏览:136
学生编程思想的培养 浏览:409
新建不了文件夹怎么回事 浏览:271
军地两用人才之友pdf 浏览:601
头条视频算法推荐机制改版 浏览:919
加密的pdf文件怎么打开 浏览:658
如何将数据传到服务器查找服务器读取数据 浏览:1006
怎么知道服务器上是否在运行代码 浏览:857
单片机多联机 浏览:216
知乎软件源码 浏览:298