【6】学习C++之类的实例化及访问
程序员文章站
2022-04-19 23:17:41
类就像一张图纸,如果不去实例化,制造出相应的零件,用处就不会那么大。 实例化类有两种,一个是从栈中实例化对象: 另一个是从堆中实例化对象: 这两种实例化后的对象的访问方式也是有所不同的,如果是从栈中实例化的对象的成员,访问用点(.)即可: 如果是从堆中实例化的对象的成员,访问用箭头(->)即可: 如 ......
类就像一张图纸,如果不去实例化,制造出相应的零件,用处就不会那么大。
实例化类有两种,一个是从栈中实例化对象:
class tv { public: char name[20]; int type; void changevol(); void power(); } int main(void) { tv tv; //实例化一个对象 tv tv[20];//实例化一组对象 return 0; }
另一个是从堆中实例化对象:
class tv { public: char name[20]; int type; void changevol(); void power(); } int main(void) { tv *p = new tv(); //实例化一个对象 tv *q = new tv[20]; //实例化一组对象 delete p; delete []q; return 0; }
这两种实例化后的对象的访问方式也是有所不同的,如果是从栈中实例化的对象的成员,访问用点(.)即可:
int main(void) { tv tv; tv.type = 0; tv.changevol(); return 0; }
如果是从堆中实例化的对象的成员,访问用箭头(->)即可:
int main(void) { tv *p = new tv(); p ->type = 0; p ->changevol(); delete p; p = null; return 0; }
如果是从堆中实例化的一组对象的成员,则是额外需要for循环:
int main(void) { tv *p = new tv[5]; for(int i = 0;i<5;i++) { p ->type = 0; p ->changevol(); } delete []p; p = null; return 0; }
上一篇: 琴棋书画具体指什么?琴棋书画象征着什么?