C++中类的实例化的两种方法

1、首先定义一个类

class Coordinate
{
public:
	int m_iX;
	int m_iY;
};

2.实例化一个类的对象

void main()
{
   Coordinate coord[3]; //栈上
   coord[1].m_iX=10;

 //在堆中初始化一个实例
   Coordinate *p=new Coordinate[3]; //堆中
   p[0].m_iX=10;
   p->m_iX=10;
   delete []p;
   p=NULL;
}

1.在栈上实例化一个对象数组

    Coordinate coord[3],类名+数组的名称+数组的大小,创建完成后每一个数组元素都可以访问各自的成员,例如用coord[1]来访问数组的第二个元素,后面接点号来访问数据成员,形如coord[1].m_iX=10。这里使用完后内存是自动销毁的。

2.在堆中实例化一个对象数组

    Coordinate *p=new Coordinate[3],用一个指针指向一段内存,开辟内存用new运算符,这里数组大小为3,则创建时会调用三次构造函数。创建完成后每一个数组元素都可以访问各自的成员,例如p[0].m_iX=10是通过指针接一个索引再加点号和数据成员访问的,也可以通过p->m_iX=10来进行赋值。在这里使用完后,必须要通过delete来销毁这个对象数组,由于是一个对象数组,所以在销毁的时候是调用了多次析构函数的。

如下图:

 

      证明构造函数和析构函数被多次调用

//Coordinate.h

#ifndef  COORDIANTE
#define  COORDIANTE
class Coordinate
{
public:
	Coordinate();
	~Coordinate();
};
#endif

//Cordinate.cpp

#include<iostream>
#include"Coordinate.h"
using namespace std;
 
Coordinate::Coordinate()
{
   cout<<"Coordinate()"<<endl;
}
 
Coordinate::~Coordinate()
{
	cout<<"~Coordinate()"<<endl;
}
结果:

[1]参考;https://blog.csdn.net/sun980984305/article/details/52959893

  • 12
    点赞
  • 40
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值