当前位置: 首页 > news >正文

侯捷 C++面向对象编程笔记——9 复合 委托

9 复合 委托

9.1 Composition 复合

类似于c中结构里有结构——class里有class

image-20230801093748678

deque 是一个已经存在的功能很多的类(两头进出的队列);利用deque的功能来实现queue的多种操作

该例只是复合的一种情况——设计模式 Adapter

9.1.1 复合下的构造和析构

image-20230801095529359
  • 构造是由内而外

    Container 的构造函数,编译器会自动先调用 Component 的 default 构造函数,再执行自己

    注意如果要调用 Component 的其他构造函数需要自己写出来

    Container::Container(…): Component() { … };

  • 析构是由外而内

    Container 的析构函数会先执行自己,之后编译器调用 Component 的析构函数

9.2 Delegation 委托

委托就是 Composition by reference;即通过指针把任务委托给另一个类

复合中,内部和外部是一起出现的;而委托是不同步的

这是一个著名的设计模式——pimpl (pointer to implementation) 或者叫 “编译防火墙”

  • 右边怎么变动都不会影响左边

  • reference counting 多个指针共享一个 “Hello”;但当a要改变内容时, 系统会单独复制一份出来给a来改,b和c依然在共享

    image-20230801101907977

相关文章:

侯捷 C++面向对象编程笔记——9 复合 委托

9 复合 委托 9.1 Composition 复合 类似于c中结构里有结构——class里有class deque 是一个已经存在的功能很多的类(两头进出的队列);利用deque的功能来实现queue的多种操作 该例只是复合的一种情况——设计模式 Adapter 9.1.1 复合下的构造…...

状态模式——对象状态及其转换

1、简介 1.1、概述 在软件系统中,有些对象也像水一样具有多种状态,这些状态在某些情况下能够相互转换,而且对象在不同的状态下也将具有不同的行为。为了更好地对这些具有多种状态的对象进行设计,可以使用一种被称为状态模式的设…...

Linux一阶段复习

Linux之父是林纳斯本纳第克特托瓦兹 Apache发布目录:/var/www/html nginx发布目录:/usr/share/nginx/html/ 配置dns的文件 : /etc/resolv.conf nginx的配置文件:/etc/nginx/ yum源的配置文件:/etc/yum.repos.d/ …...

宝塔Linux面板怎么升级?升级命令及失败解决方法

宝塔Linux面板怎么升级到新版本?root账号ssh登录到云服务器后,执行宝塔Linux面板升级命令即可搞定,新手站长分享宝塔Linux面板升级命令: 宝塔面板升级到新版本 1、使用root账号ssh登录到云服务器上 ssh root你的云服务器ip地址…...

前端面试的性能优化部分(6)每天10个小知识点

目录 系列文章目录前端面试的性能优化部分(1)每天10个小知识点前端面试的性能优化部分(2)每天10个小知识点前端面试的性能优化部分(3)每天10个小知识点前端面试的性能优化部分(4)每天…...

2023年 Java 面试八股文(20w字)

目录 第一章-Java基础篇 1、你是怎样理解OOP面向对象 难度系数:⭐ 2、重载与重写区别 难度系数:⭐ 3、接口与抽象类的区别 难度系数:⭐ 4、深拷贝与浅拷贝的理解 难度系数:⭐ 5、sleep和wait区别 难度系数&a…...

银河麒麟服务器ky10-server在线一键安装docker

脚本代码 # ---------------在线安装docker------------------- yum install docker -y # 修改docker拉取源为国内 rm -rf /etc/docker mkdir -p /etc/docker touch /etc/docker/daemon.json cat >/etc/docker/daemon.json<<EOF{"registry-mirrors": [&q…...

spring boot中web容器配置

web容器配置 spring boot 默认的web容器是 tomcat&#xff0c;如果需要换成其他的 web 容器&#xff0c;可以如下配置。 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId><!-- 默…...

DNSlog注入(利用DNSlog平台将SQL盲注变成回显注入)

前言什么是UNC什么是DNSlog注入DNSlog注入的条件防止DNSlog注入的几个措施 sqli-labs试验 前言 前几天面试的时候&#xff0c;面试官问我知不知道OOB&#xff08;带外数据&#xff09;。 当时我蒙了&#xff0c;确实没听说过这个东西&#xff0c;然后面试官告诉我原来dnslog注入…...

vim学习笔记(致敬vim作者)

vim cheat sheet 30. vim 删除大法 vim 删除某个字符之后改行的其他的字符&#xff1f;删除某行之后的其他行&#xff1f;删除某个字符之后的其他字符&#xff1f;【1】删除单个字符&#xff1f; 跳到要删除的字符位置 按下d键然后按下shift 4键 【2】删除某行之后的其他行…...

力扣 -- 139. 单词拆分

一、题目 题目链接&#xff1a;139. 单词拆分 - 力扣&#xff08;LeetCode&#xff09; 二、解题步骤 下面是用动态规划的思想解决这道题的过程&#xff0c;相信各位小伙伴都能看懂并且掌握这道经典的动规题目滴。 三、参考代码 class Solution { public:bool wordBreak(str…...

百度秋招攻略,百度网申笔试面试详解

百度秋招简介 作为行业巨头&#xff0c;百度向社会提供的岗位一直都是非常吃香的&#xff0c;每年也都有很多考生密切关注&#xff0c;百度发布的招聘广告&#xff0c;以尽可能的让自己进入这家企业工作&#xff0c;实现自己的人生价值。那么百度每年的秋招时间是多久&#xf…...

nohup Java -jar 生成的nohup.out 文件一直增加,如何处理

目录 1 实现 1 实现 除了使用echo "" > filename清空文件内容之外&#xff0c;还有其他几种方法可以删除文件中的内容而不删除文件本身&#xff1a;使用truncate命令&#xff1a;truncate命令可以用来截断文件并清空内容。使用以下命令清空文件内容&#xff1a;t…...

静态页面与动态页面的区别及部署jpress应用

简述静态网页和动态网页的区别 静态网页&#xff1a; 1、首先是静态网页&#xff0c;静态网页每个网页中都有一个固定的URL&#xff0c;网页URL以htm、HTML、jpg、.gif、.mp4等常见形式为后缀&#xff0c;而且不含有问号&#xff1b; 2、静态网页内容一经发布到网页服务器上…...

华为数通HCIA-华为VRP系统基础

什么是VRP? VRP是华为公司数据通信产品的通用操作系统平台&#xff0c;作为华为公司从低端到核心的全系列路由器、以太网交换机、业务网关等产品的软件核心引擎。 VRP提供以下功能&#xff1a; 实现统一的用户界面和管理界面 实现控制平面功能&#xff0c;并定义转发平面接口…...

基于Azure OpenAI Service 的知识库搭建实验⼿册

1.概要 介绍如何使⽤Azure OpenAI Service 的嵌⼊技术&#xff0c;创建知识库&#xff1b;以及创建必要的资源组和资源&#xff0c;包括 Form Recognizer 资源和 Azure 翻译器资源。在创建问答机器⼈服务时&#xff0c;需要使⽤已部署模型的 Azure OpenAI 资源、已存在的…...

第七节--结构体

lesson19: 一、结构的基础知识 1.数组是一组xx集合&#xff08;1&#xff1a;10&#xff1a;10&#xff09; 2.结构体是XX的集合&#xff08;1&#xff1a;10&#xff1a;25&#xff09; 二、结构的声明&#xff08;看课件&#xff09;&#xff08;1&#xff1a;12&#xf…...

Docker学习(二十四)报错速查手册

目录 一、This error may indicate that the docker daemon is not running 报错docker login 报错截图&#xff1a;原因分析&#xff1a;解决方案&#xff1a; 二、Get "https://harbor.xxx.cn/v2/": EOF 报错docker login 报错截图&#xff1a;原因分析&#xff1a…...

一种SpringBoot下Scheduler定时任务优雅退出方案

背景 近期业务中有一个定时任务发现每次服务部署时&#xff0c;偶发性的会触发问题&#xff0c;这里记录一下问题的跟进解决。 分析现象 该定时任务每2分钟执行一次&#xff0c;完成数据的更新处理。同时服务部署了多个服务器节点&#xff0c;为保证每次只有一个服务器节点上…...

DNS部署与安全详解(上)

文章目录 一、DNS二、域名组成1. 域名组成概述2. 域名组成 三、监听端口四、DNS解析种类1. 按照查询方式分类&#xff1a;2. 按照查询内容分类&#xff1a; 五、DNS服务器搭建过程1. 先确保服务器的IP地址是固定的2. 安装DNS软件 一、DNS DNS全称Domain Name Service&#xff0…...

Token工厂:从“卖流量”到“卖Token”:中国移动砸百亿建Token生态,三大运营商的AI战争升级,阿里,百度,华为,字节跟进

5月9日&#xff0c;2026移动云大会上&#xff0c;中国移动市场经营部总经理邱宝华扔出一个新概念——"Token运营体系"。未来3-5年&#xff0c;中国移动将投入百亿级Token生态资源&#xff0c;建设千亿级算力基础设施&#xff0c;携手共创万亿级AI产业价值。"百亿…...

大语言模型分步推理与自我验证框架:提升AI生成准确性的工程实践

1. 项目概述&#xff1a;当AI学会“自我验证”最近在开源社区里&#xff0c;一个名为“Lets-Verify-Step-by-Step”的项目引起了我的注意。这个项目直指当前大语言模型&#xff08;LLM&#xff09;应用中的一个核心痛点&#xff1a;如何让模型在生成复杂答案时&#xff0c;能像…...

ESP32接入ChatGPT API:构建本地化AIoT智能交互终端

1. 项目概述&#xff1a;当ESP32遇见ChatGPT&#xff0c;开启本地化智能交互新玩法最近在捣鼓ESP32开发板&#xff0c;总想着给它加点“智能”的料。传统的物联网项目&#xff0c;比如温湿度监测、远程控制开关&#xff0c;虽然实用&#xff0c;但总觉得少了点“灵魂”。直到我…...

从单体智能到组织智能:AgentOrg多智能体系统架构与实战

1. 项目概述&#xff1a;从单体智能到组织智能的范式跃迁最近在AI Agent领域&#xff0c;一个名为“AgentOrg”的开源项目引起了我的注意。这个由Angelopvtac发起的项目&#xff0c;其核心思想非常吸引人&#xff1a;它不再将AI Agent视为一个孤立的、执行单一任务的智能体&…...

树莓派5驱动128x128 LED矩阵:打造复古PICO-8游戏艺术墙

1. 项目概述与核心思路我一直对复古游戏和像素艺术情有独钟&#xff0c;也一直想在家里弄一个既有科技感又能玩的装饰品。最近&#xff0c;我把树莓派5、四块64x64的RGB LED矩阵面板和PICO-8幻想游戏机捣鼓到了一起&#xff0c;成功在墙上挂起了一个128x128像素的“游戏艺术墙”…...

智能合约如何重塑AI服务信任:去中心化执行与验证架构解析

1. 项目概述&#xff1a;当AI技能遇上智能合约最近在探索AI与区块链结合的前沿领域时&#xff0c;我遇到了一个非常有意思的项目&#xff1a;saralobo/skill-ai-execution-contract。这个名字乍一看有点复杂&#xff0c;但拆解开来&#xff0c;核心就是“技能”、“AI执行”和“…...

基于规则引擎与AI Agent的Google Ads自动化营销系统设计与实践

1. 项目概述&#xff1a;当AI遇上Google Ads&#xff0c;一个自动化营销引擎的诞生最近在折腾一个挺有意思的项目&#xff0c;起因是发现很多团队在管理Google Ads广告时&#xff0c;依然在重复着大量手动、低效的操作。无论是关键词的日常拓词、否定关键词的筛选&#xff0c;还…...

越刷越空?不是自控力太差,是你的大脑“最高权限”丢了

被一块屏幕“遛”着走的人前几天深夜&#xff0c;我和几个以前在老东家一起扛过枪的兄弟&#xff0c;在一个烤串摊喝酒。一桌人&#xff0c;平均四十多岁&#xff0c;平时在公司里不是总监就是合伙人&#xff0c;西装革履&#xff0c;人模狗样。按理说&#xff0c;都算是社会化…...

面向科学计算Agent的Harness数值稳定性校验

面向科学计算Agent的Harness数值稳定性校验关键词&#xff1a;科学计算Agent、Harness框架、数值稳定性校验、数值误差溯源、Agent-数值系统交互、可复现科学、边界条件自动化测试摘要&#xff1a;随着大语言模型&#xff08;LLM&#xff09;与多模态AI的崛起&#xff0c;科学计…...

Automa实战:除了循环数字,这两种更高效的网页数据抓取方法你知道吗?(附避坑指南)

Automa进阶实战&#xff1a;突破循环数字的网页抓取高效方法论 当你在深夜盯着屏幕上那个不断转圈的Automa工作流&#xff0c;第37次尝试抓取动态加载的电商商品列表却依然失败时&#xff0c;或许该重新思考自动化抓取的本质了。循环数字就像用螺丝刀当锤子——在某些场景下能勉…...