inf*_*oop 3 c++ oop pointers class visual-c++
我在这里有点困惑.如果我们可以实例化一个类的对象并访问成员方法那么为什么指向一个类的指针?它有什么好处吗?我们何时使用指向类的指针,何时实例化它的对象?
谢谢.
Joh*_*ing 10
您可能不需要指向类的指针.如果你的类很小,没有通过基类表现出多态行为,或者需要花费任何实例化的东西,你可能只需要动态地删除一个并完成.
但在许多情况下,我们需要指针,因为:
如果我们可以实例化一个类的对象并访问成员方法那么为什么指向一个类的指针?
如果你只有一个基类而没有派生类,那么最好在堆栈上创建对象而不是指向类的指针.在后者中,您应该调用delete指针来返回获取的资源new.(还要确保堆栈永远不会溢出.如果需要大量的实例数组,那么实例化使用new是唯一的选择.)
class foo
{
int a ;
};
foo obj1 ;
foo obj2 = obj1 ; // Copy construction. Both obj2, obj1 have it's independent
// copy of objects. (Deep copy)
foo *obj3 = new foo ;
foo *obj4 = obj3 ; // Copy construction. However, both obj3, obj4 point to the
// same object. (Shallow copy)
// You should be careful in this case because deletion of obj3
// makes obj4 dangling and vice versa.
Run Code Online (Sandbox Code Playgroud)
它有什么好处吗?
多态性因为它仅适用于指针/引用.
我们何时使用指向类的指针,何时实例化它的对象?
这取决于要求.如前所述,如果你只有一个基类创建堆栈上的对象是一个更好的选择.
| 归档时间: |
|
| 查看次数: |
4180 次 |
| 最近记录: |