1、demo.cpp如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
|
//遍历数组中的元素,所谓遍历就是 打印数组中的元素,yiban
#include<iostream>
#include<stdlib.h>
#include"Coordinate.h"
using
namespace
std;
int
main(
void
){
Coordinate coor[3];
//定义一个坐标,栈的方式访问
coor[0].m_iX=3;
coor[0].m_iY=5;
Coordinate *p=
new
Coordinate[3];
//以堆的方式实例化对象
p->m_iX=7;
//以指针访问数组元素第一个
p[0].m_iY=9;
//以索引的形式
p++;
//指向了第二个元素p=p+1;
p->m_iX=11;
//第二个元素了
p[0].m_iY=13;
p[1].m_iX=15;
//访问第三个元素了
p++;
//p指向了第三个元素
p->m_iY=17;
for
(
int
i=0;i<3;i++)
//遍历第一个数组
{
cout<<
"coor_x"
<<coor[i].m_iX<<endl;
cout<<
"coor_y"
<<coor[i].m_iY<<endl;
}
for
(
int
j=0;j<3;j++)
{
cout<<p->m_iX<<endl;
cout<<p->m_iY<<endl;
p--;
//第一次循环的时候指向的是第三个元素,因为之前的p已经指向了第三个元素,所以P——让她指回
}
p++;
delete
[]p;
//之所以加上[].是因为该数组的所有对象都应该进行销,否则就只执行一次析构函数,那么久会发生内存泄露,。由下图的运行结果可以看出,执行了三次析构函数。
p=NULL;
system
(
"pause"
);
return
0;
}
2、Coordinate.cpp如下:
#include<iostream>
#include"Coordinate.h"
using
namespace
std;
Coordinate::Coordinate()
{
cout<<
"Coordinate"
<<endl;
}
Coordinate::~Coordinate()
{
cout<<
"~Coordinate"
<<endl;
}
|
3、
1
2
3
4
5
6
7
8
9
10
11
12
|
Coordinate.h如:
#include<iostream>
using
namespace
std;
class
Coordinate
{
public
:
Coordinate();
~Coordinate();
public
:
int
m_iX;
int
m_iY;
};
|
运行结果如下:
2、
本文转自 lillian_trip 51CTO博客,原文链接:http://blog.51cto.com/xiaoqiaoya/1963317,如需转载请自行联系原作者