C++大神们看过来~~~继承和派生以及深浅拷贝的知识点~~~
发布网友
发布时间:2022-04-18 07:23
我来回答
共1个回答
热心网友
时间:2022-04-18 08:53
继承和派生,还是看课本去吧,这个的知识点多了去了,找课件自己学去
深浅拷贝,可以给你讲一下
class A
{
public:
A()
{
n = 2;
p = new int;
}
~A()
{
delete p;
}
int n;
int *p;
};
A a1;
A a2(a1); //这样默认的就是浅拷贝,a1的p和a2的p都指向同一块内存区域,但是当析构时,先析构a2,然后删除了p,然后在析构a1就会出错,所以为了避免这样,就需要深拷贝
比如这样
A(const A &obj) //写在类中
{
n = obj.n;
p = new int; //自己开辟了空间,而不是使用Obj开辟的空间
*p = *obj.p; //赋值
}//这样就避免上面那种情况