动态创建数组[通俗易懂]

世界杯决赛日期

大家好,又见面了,我是你们的朋友全栈君。

使用运算符new也可以创建数组类型的对象,这时需要给出数组的结构说明。用new运算符动态创建一维数组的语法形式为:

new 类型名【数组长度】;

其中数组长度指出了数组元素的个数,它可以是任何能够得到正整数值的表达式。

细节:

用new动态创建一维数组时,在方括号后仍然可以加小括号“()”,但小括号内不能带任何参数。是否加“()”的区别在于,不加“()”,则对数组每个元素的初始化,与执行“new T”时所进行初始化的方式相同;加“()”,则与执行“new T()”所进行初始化的方式相同。例如,如果这样动态生成一个整型数组:

int *p=new int[10] ();

则可以方便地为动态创建的数组用0值初始化。

如果是用new建立的数组,用delete删除时所在指针名前面要加上“【】”,格式如下:

delete[] 指针名;

代码语言:javascript代码运行次数:0运行复制#include

using namespace std;

class point{

public:

point():x(0),y(0)

{

cout<<"default constructor called."<

}

point(int x,int y):x(x),y(y)

{

cout<<"constructor called."<

}

~point()

{

cout<<"destructor called."<

}

int getx() const {

return x;}

int gety() const {

return y;}

void movee(int newx,int newy)

{

x=newx;

y=newy;

}

private:

int x,y;

};

int main()

{

point *ptr=new point[2];//创建对象数组

ptr[0].movee(5,10);//通过指针访问数组元素的成员

ptr[1].movee(15,20);//通过指针访问数组元素的成员

cout<<"deleting..."<

delete[] ptr;//删除整个对象数组

return 0;

}这里利用动态内存分配操作实现了数组的动态创建,使得数组元素的个数可以根据运行时的需要而确定。但是建立和删除数组的过程使得程序略显繁琐,更好的方法是将数组的建立和删除过程封装起来,形成一个动态数组类。

下一篇有 动态数组类的介绍。

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/134190.html原文链接:https://javaforall.cn

Copyright © 2088 世界杯女足_足球歌曲世界杯主题曲 - luxiuying.com All Rights Reserved.
友情链接