首页 > 代码库 > 关于对象的动态建立和释放
关于对象的动态建立和释放
#include<iostream> //对象的动态建立和释放 using namespace std; class Object { public: Object() { cout<<"构造函数\n"; }; void prinT() { cout<<"woshi dayinhanshu \n"; } ~Object() { cout<<"析构函数\n"; } private: protected: }; int main() { //c int *p1=(int *)malloc(sizeof(int ));//分配基础类型 free(p1); int *p2=(int *)malloc(sizeof(int ));//分配数组类型 free(p2); Object *p3=(Object *)malloc(sizeof(Object));//分配对象 free(p3); //c++ int *t1=new int;//开辟一个存放整数的存储空间,返回一个指向该存储空间的地址(即指针) int *t12=new int(10);//分配基础类型 开辟一个存放整数的空间,并指定该整数的初值为100,返回一个指向该存储空间的地址 delete(t1); char *t2=new char[10];//分配数组类型 开辟一个存放字符数组(包括10个元素)的空间,返回首元素的地址 delete(t2); Object *t3 =new Object;//分配对象 delete(t3); system("pause"); }
c不能调用构造和析构函数,而c++的可以
哈哈这样子是不对的,虽然程序没有报错,但是一步一步调试,数组那里出了问题
本程序应该为:
#include<iostream> //对象的动态建立和释放 using namespace std; class Object { public: Object() { cout<<"构造函数\n"; }; void prinT() { cout<<"woshi dayinhanshu \n"; } ~Object() { cout<<"析构函数\n"; } private: protected: }; int main() { //c int *p1=(int *)malloc(sizeof(int ));//分配基础类型 free(p1); int *p2=(int *)malloc(sizeof(int ));//分配数组类型 free(p2); Object *p3=(Object *)malloc(sizeof(Object));//分配对象 free(p3); //c++ int *t1=new int;//开辟一个存放整数的存储空间,返回一个指向该存储空间的地址(即指针) int *t12=new int(10);//分配基础类型 开辟一个存放整数的空间,并指定该整数的初值为100,返回一个指向该存储空间的地址 delete t1; char *t2=new char[10];//分配数组类型 开辟一个存放字符数组(包括10个元素)的空间,返回首元素的地址 delete [] t2; Object *t3 =new Object;//分配对象 delete(t3); system("pause"); }
一定要记住数组的释放的表达方法。
关于对象的动态建立和释放
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。