day06

十七 拷贝构造和拷贝赋值

1 深拷贝和浅拷贝

  • 浅拷贝:只是拷贝指针变量本身,析构时出现 “double free” 异常
  • 深拷贝:拷贝指针所指向的数据

1) 如果一个类包含指针形式的成员变量,缺省的拷贝构造函数只会复制指针本身,而不会复制指针所指向的内容,这种拷贝
称为浅拷贝。
2)浅拷贝将导致不同对象的数据共享,如果数据是在堆区,再析构时会引发”double free”异常。
3)因此必须定义一个支持复制指针所指向内容的拷贝构造函数,即深拷贝。

eg:
//浅拷贝
int* p1 = new int(100);
int* p2 = p1;
delete p1;
delete p2;//double free

//深拷贝
int* p1 = new int(100);
int* p2 = new int(*p1);
dalete p1;
delete p2;//ok

2 深拷贝赋值和浅拷贝赋值

  • 1)在类中编译器会提供一个缺省的拷贝赋值操作符函数,完成两个对象的赋值操作,但是和缺省拷贝构造类似,是浅拷贝。
  • 2)为了得到深拷贝的效果,必须自己定义个支持深拷贝的拷贝赋值函数。
类名 & operator = (const 类名& that){
    1)防止自赋值
    2)释放旧内存
    3)分配新资源
    4)拷贝新数据
    5)返回自引用
}


十八 静态成员(static)

1 静态成员变量

class 类名{
    static 数据类型 变量;//声明
};
数据类型  类名::变量 = 初始;//定义和初始化
  • 1)静态成员变量类似全局变量,内存在全局区,所有它不属于对象,也不能在构造函数中定义和初始化,需要在类的外部单独定义和初始化。
  • 2)使用方法:
    类名::静态成员变量
    /* 对象.静态成员变量 */

2 静态成员函数

class 类名{
    static 返回类型 函数名(形参表){....}
};
  • 1)在静态成员中没有this指针
  • 2)使用方法:
    类名::静态成员函数(实参表);

注意:静态成员函数中只能访问静态成员,而在非静态成员函数中既能访问静态成员,也能访问非静态成员。


3 单例模式

一个类只允许创建一个对象。
  • 1)禁止在类的外部随意的创建对象:私有化构造函数
  • 2)类的内部自己维护唯一的对象:静态成员变量
  • 3)提供获取和访问该对象的方法:静态成员函数
    class A{
    public:
        static A& get(void){
            return a;
        }
    private:
        A(void);
        A(const A&);
        static A a;//在类的内部限定唯一 一个对象
    };
  • 4)创建方式
    => 饿汉式:无论单列对象用或不用,程序启动即创建
    => 懒汉式:单例用的时候再创建,不用的时即销毁
内容概要:本文深入解析了扣子COZE AI编程及其详细应用代码案例,旨在帮助读者理解新一代低门槛智能体开发范式。文章从五个维度展开:关键概念、核心技巧、典型应用场景、详细代码案例分析以及未来发展趋势。首先介绍了扣子COZE的核心概念,如Bot、Workflow、Plugin、Memory和Knowledge。接着分享了意图识别、函数调用链、动态Prompt、渐进式发布及监控可观测等核心技巧。然后列举了企业内部智能客服、电商导购助手、教育领域AI助教和金融行业合规质检等应用场景。最后,通过构建“会议纪要智能助手”的详细代码案例,展示了从需求描述、技术方案、Workflow节点拆解到调试与上线的全过程,并展望了多智能体协作、本地私有部署、Agent2Agent协议、边缘计算插件和实时RAG等未来发展方向。; 适合人群:对AI编程感兴趣的开发者,尤其是希望快速落地AI产品的技术人员。; 使用场景及目标:①学习如何使用扣子COZE构建生产级智能体;②掌握智能体实例、自动化流程、扩展能力和知识库的使用方法;③通过实际案例理解如何实现会议纪要智能助手的功能,包括触发器设置、下载节点、LLM节点Prompt设计、Code节点处理和邮件节点配置。; 阅读建议:本文不仅提供了理论知识,还包含了详细的代码案例,建议读者结合实际业务需求进行实践,逐步掌握扣子COZE的各项功能,并关注其未来的发展趋势。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值