C++对象指针数组与堆中对象数组
#include <IOSTREAM> using namespace std; /*堆中对象数组、对象指针数组*/ class stu { public: void set(int x){i = x + 6;} int get(){return i*i;}; private: int i; }; void main() { const int n = 1000; stu * p = new stu[n];//在堆中定义了一个对象数组,并将其首地址传送给对象指针p. int i; stu * p0 = p; for (i=0; i<n; i++) { p->set(i); cout<<"p["<<i<<"]:"<<p->get()<<endl; p++; } delete [] p0;//删除堆中对象数组;(注:此处p0不可换为p,因为p的值在for循环中已被改变,不再是数组的首地址了。) const int m = 1000; stu * p1[m]; //p1成了指针数组的数组名,是个指针常量 for (i=0; i<m; i++) { p1[i] = new stu;//数组p1中,每个元素都是个对象指针,故可以直接被new stu赋值。 // p1 = p1+i;//错误,p1是个数组名,是个指针常量 p1[i]->set(i+1); cout<<"p1["<<i<<"]:"<<p1[i]->get()<<endl; delete p1[i]; } }
声明:该文观点仅代表作者本人,入门客AI创业平台信息发布平台仅提供信息存储空间服务,如有疑问请联系rumenke@qq.com。
- 上一篇: C/C++中break和continue
- 下一篇:没有了