@浅谈类对象和类指针
代码:
1
2
3
4
5
6
7
Student a;
s.setName(“A”);
//Studeng *b = new Student();
Student *b;
b = new Student();
b->setName(“B”);
分析:
定义类对象基本格式是:Student a;在定义之后就已经为a这个对象分配了内存,且为内存栈;
定义类指针基本格式是:Student b = new Student();在定义b的时候并没有分配内存,只有执行new后才会分配内存,且为内存堆。
问题:
(1)类对象和类指针区别
A: 定义
——类对象:利用类的构造函数(构造函数:对类进行初始化工作)在内存中分配一块区域(包括一些成员变量赋值);
——类指针:是一个内存地址值,指向内存中存放的类对象(包括一些成员变量赋值;类指针可以指向多个不同的对象,这就是多态);
B: 使用
——引用成员:对象使用“.”操作符,指针用“->”操作符;
——生命周期:若是成员变量,则由类的析构函数来释放空间;若是函数中临时变量,则作用域是函数体内;而指针则需要利用delete在相应的地方释放分配的内存块。
注意:new与delete成对存在&