编辑代码

#include <iostream>
using namespace std;

/********实例化对象*******/

class FClass
{
public:
	FClass(){ cout << "默认构造函数" << endl; }
	FClass(int x,int y)
	{
		cout << x << y << endl;
	}
    int a;
    ~FClass() { cout << "析构函数" << endl; }
};

//栈中实例化(普通对象)
    FClass Flei0;//调用  FClass() 构造函数
	//FClass Flei1();//错误 不会调用无参构造函数
	FClass Flei2(2, 5);//调用  FClass(int x,int y) 构造函数  

//堆中实例化(指针对象)
	FClass* PFlei0 = new FClass();//调用默认构造函数
	FClass* PFlei1 = new FClass(1,5);//调用两个参数的构造函数

    //销毁
	delete PFlei0;//不使用时需要手动释放指针  销毁会执行析构函数
	delete PFlei1;
	PFlei0 = NULL;//指针赋空值,确保指针无效
	PFlei1 = NULL;





/********实例化对象数组*******/
//对象数组中每一个元素都是一个对象
//栈中实例化
    FClass Flei[2];//创建了两个对象 Flei[0] , Flei[1]    每生成一个对象调用一次构造函数
	Flei[0].a = 8;

//堆中实例化
	FClass* FPlei = new FClass[2];//生成两个指针对象FPlei[0]  FPlei[1]     每生成一个对象调用一次构造函数
	FPlei[0].a = 8;

    //销毁
	delete[]FPlei;//销毁指针数组   FPlei指针数组一共有两个对象,全部销毁,执行两次析构函数

    //销毁之后在尝试使用指针
    FPlei[1].a = 8;//为初始化对象,指向未知内存

int main() {
    
	cout << "Hello JSRUN!   \n\n         - from C++ ." << endl;
	return 0;
}