类对象和指针
代码
类
1 | class Test{ |
类指针
1 | void test1() { |
类对象
1 | void test2() { |
不同点
类指针 | 类对象 | |
---|---|---|
内存分配 | 定义类指针,不分配内存 | 定义类对象,分配内存 |
关系 | 内存地址,指向类对象。利用构造函数分配一块内存 | |
访问 | 间接访问 | 直接访问 |
多态 | 实现多态,父类指针调用子类对象 | 不能实现多态,声明即调用构造函数,已分配内存 |
堆栈 | 内存堆,永久变量,手动释放,new-delete搭配 | 内存栈,局部临时变量 |
new的对象在堆中 | 在栈中 | |
使用 | new: S* s = new S() , s->name |
声明即可: S s; ,s.name |
生命期 | 需要delete | 类的析构函数来释放空间 |
传参 | 指针4个字节 | 对象,参数传递资源占用太大 |
虚函数f | 调用分配给它空间时那种类的func | 调用自己的func |
其它 | 父类指针指向子类对象 |
推荐使用const &引用
,安全系数高。