手机网站建设与制作,网站开发专业培训学校,怎么在网上做外贸,制作自己的网站学校C++类和new、delete操作符 在C++中,你可以像定义变量一样来创建对象,如: Student stu; //对象已被实例化,已分配内存空间,可以使用了 stu.say(); //调用成员函数 这种情况下,系统会在栈区为对象分配内存。栈区是内存中的一块区域,由系统自动分配和释放,程序员无法操控…C++类和new、delete操作符
在C++中,你可以像定义变量一样来创建对象,如: Student stu; //对象已被实例化,已分配内存空间,可以使用了 stu.say(); //调用成员函数 这种情况下,系统会在栈区为对象分配内存。栈区是内存中的一块区域,由系统自动分配和释放,程序员无法操控,一般用来存放函数的参数值、局部变量、局部对象等。 当发生函数调用时,系统将函数参数、局部变量、局部对象依次压入栈区;函数执行结束,再按照先进后出的原则将它们弹出(销毁)。 对于大部分程序,这不会有什么问题。但当你希望在函数调用结束前销毁对象时,你是无能为力的。或者你希望通过 for 循环来创建多个对象,这种方法同样也做不到。 这个时候 new 和 delete 就派上了用场:使用 new 创建的对象,可以在任意时刻通过 delete 销毁,而且只需要一个指针指向它。 以前面的 Student 类为例,可以这样来动态创建对象: new Student; 也可以使用构造函数: new Student("小明", 15, 90.5f); 这样,就在堆区为对象分配了内存,并调用了构造函数。 但是此时程序员还无法访问这个对象,因为这个对象既没有名字,也没有指针指向它。这种对象称为匿名对象,它确实存在,但无法访问。