类就像一张图纸,如果不去实例化,制造出相应的零件,用处就不会那么大。
实例化类有两种,一个是从栈中实例化对象:
class TV
{
public:
char name[];
int type; void changeVol();
void power();
} int main(void)
{
TV tv; //实例化一个对象
TV tv[];//实例化一组对象 return ;
}
另一个是从堆中实例化对象:
class TV
{
public:
char name[];
int type; void changeVol();
void power();
} int main(void)
{
TV *p = new TV(); //实例化一个对象
TV *q = new TV[]; //实例化一组对象
delete p;
delete []q; return ;
}
这两种实例化后的对象的访问方式也是有所不同的,如果是从栈中实例化的对象的成员,访问用点(.)即可:
int main(void)
{
TV tv;
tv.type = ;
tv.changeVol();
return ;
}
如果是从堆中实例化的对象的成员,访问用箭头(->)即可:
int main(void)
{
TV *p = new TV();
p ->type = ;
p ->changeVol();
delete p;
p = NULL;
return ;
}
如果是从堆中实例化的一组对象的成员,则是额外需要for循环:
int main(void)
{
TV *p = new TV[];
for(int i = ;i<;i++)
{
p ->type = ;
p ->changeVol();
}
delete []p;
p = NULL;
return ;
}