【无标题】

本文通过一个C++代码示例解释了浅拷贝和深拷贝的区别。在示例中,`Animal`类展示了成员变量的拷贝行为。`test2`函数中,`Animal`对象的`Ageadd()`方法被调用,演示了浅拷贝的过程,而`main`函数中创建并设置了不同属性的`Animal`对象,展示了对象的独立性。
摘要由CSDN通过智能技术生成

浅拷贝-->主要时对指针进行拷贝,两个指针指向同一片地址
深拷贝-->不仅对指针进行拷贝,而且里面的值的空间地址不相同

#include <iostream>
using namespace std;
class Animal
{
    public:
        
        Animal()
        {
            a_age=0;
        }
        Animal(string a_name){

        this->a_name=a_name;
        }
    void setDeta(string a_name,int a_age)
    {
        this->a_name=a_name;
        this->a_age =a_age;
    }
    Animal &Ageadd()
    {
        this->a_age +=1;
        return *this;//---->每次都会返回一个对象
    }
        int a_age;
        int a_num;
        string a_name;
};        
void test2()
{
    Animal a3;
    a3.Ageadd().Ageadd().Ageadd().Ageadd();//---->返回对象
    cout<<&a3<<endl<<&a3.Ageadd()<<endl;
    cout<<"age:"<<a3.a_age <<endl;
}

int main()
{
    test2();
    Animal xf;
    xf.setDeta("小金",23);
    Animal baby;
    baby.setDeta("iu",20);
    cout <<    &xf <<endl;
    cout << &baby <<endl;
    return 0;
}
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值