模板类和友元

news2024/11/26 2:49:44

模板类和友元

  • 非模板友元
  • 约束模板友元

非模板友元

友元函数不是模板函数,而是利用模板类参数生成的函数,只能在类内实现。

友元函数访问类的私有变量的方法:
在这里插入图片描述
在这里插入图片描述
将模板类的引用传递给友元函数:
在这里插入图片描述
测试调用:
在这里插入图片描述
对于有多个模板类的实例,需要多次定义:
在这里插入图片描述
在这里插入图片描述
测试函数:
在这里插入图片描述
这样写很麻烦,

可以使用模板类的参数自动生成友元函数:

在这里插入图片描述

将友元的函数定义直接写在类的友元申明中

测试函数:
在这里插入图片描述

本质是使用模板参数生成了实例化的模板函数(本质不是模板函数,而是实例化的模板函数),如果还存在一样的模板函数的实例化版本,会报错(存在同名函数)
在这里插入图片描述
上述代码中,如果show函数参数声明了:int ,string。会和现有的友元函数int string冲突。
(之前的函数模板和函数模板的具体化版本是可以共存的,这里不行)

非模板友元
类内实现

约束模板友元

这种方式在开发中使用的比较频繁:

  1. 第一步:在模板类的定义前面,声明友元函数模板。
  2. 第二步:在模板类中,再次声明友元函数模板。
  3. 第三步:友元函数模板的定义。

友元函数模板就是函数模板,并且可以使用在多个类上面

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/750379.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Android oom_adj 更新原理(二)

源码基于:Android R 接上一篇:Android oom_adj 更新原理(一) 12. computeOomAdjLocked() frameworks/base/services/core/java/com/android/server/am/OomAdjuster.javaprivate final boolean computeOomAdjLocked(ProcessRecord app, int cachedAdj,Pr…

深入解析Android Lifecycle;从基本使用到源码实现,全面掌握生命周期管理

Lifecycle 是 Android Jetpack 中的一个组件,用于管理 Android 应用组件(如 Activity 和 Fragment)的生命周期。通过使用 Lifecycle,开发者可以更容易地管理组件的生命周期并执行相关的操作。 Lifecycle 提供了一组生命周期事件&…

关于torch.load()更改了cuda位置还是cuda内存不够的问题

关于torch.load()变了cuda位置还是cuda内存不够的问题 问题背景:在一次任务中,由于需要使用cuda进行代码运行,但是分明修改了cuda到一个空闲的卡位置,但是依然抱错cuda out of memory的问题 在任务中,最开始原始代码是…

Node+mysql-注册和登录账号实现(原生)

1.创建数据表 说明:创建id,username,password字段,并设置了类型。 2.导入mysql库 npm i mysql2.18.1 3.创建了db文件夹 说明:创建mysql数据池 // 导入mysql包 const mysqlrequire("mysql") // 创建mysql连接池 const…

react-flow实现dag工作流

1. 官方文档 Introduction to React Flow 2.效果 3. 代码 index.jsx import { useState, useCallback, useEffect } from react; import ReactFlow, {Controls,Background,applyNodeChanges,applyEdgeChanges,addEdge,ReactFlowProvider,useReactFlow } from reactflow;…

C++编程(二)—— 设计模式

文章目录 单例模式饿汉式单例模式懒汉式单例模式懒汉式单例模式2 工厂模式(创建型模式)简单工厂工厂方法抽象工厂总结 单例模式 一个类不管创建多少次多线,永远只能得到该类型一个对象的实例。 A* p1 new A(); A *p2 new A(); A *p3 new…

msvcr110.dll丢失的修复教程,找不到msvcr110.dll解决办法哪个更推荐

msvcr110.dll是微软的Visual C运行库文件之一。它是Microsoft Visual Studio 2012的一部分,用于支持运行在Windows操作系统上使用Visual C编写的应用程序。在Windows系统中非常重要,如果丢失或是损坏就会造成很多程序无法启动运行。 会出现以下的报错提…

将C++对象注册成QML控件并提供可被调用的函数

0x00 使用QML编写界面 import QtQuick 2.14 import QtQuick.Window 2.14 import QtQuick.Controls 1.4 import QtQuick.Controls 2.12 as Controls import QtQuick.Controls.Styles 1.4 import QtQuick.Controls.Material 2.12 //import com.HLD 1.0Window {visible: true;mini…

赛效:WPS文档怎么在文本中插入连续的编号

1:打开一个WPS文档,全选所有的段落。 2:点击“开始”选项卡里点击编号下拉菜单,选择一种编号样式并点击。 3:我们会看到每段前面已经自动出现编号,而且是连续的。这个时候,我们在文档末尾新增一…

基于串行和并行ADMM算法在分布式调度中的应用(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

管理软件开发平台:用科技提升数据治理能力,实现流程化办公!

如果实现流程化办公,想必是很多企业心心念念的发展愿望。但是,如何实现?利用什么样的平台可以完成这一目标?这是很多人值得深思的问题之一。管理软件开发平台实行100%全源码开放,是轻量级、可视化低代码开发平台&#…

6.带你入门matlab 协方差和相关系数( matlab程序)

1.简述 协方差 Vcov(X) Vcov(X,flag(同上)); X为矩阵 相关系数 Rcorr(X) X为矩阵 协方差和相关系数函数的使用如下 代码及运行结果 %% 协方差 clear a…

kaggle学习笔记-餐厅数据挖掘

Zomato Complete EDA and LSTM model 背景 分析Zomato数据集的基本思想是为了公平地了解影响在班加罗尔不同地方建立不同类型餐厅的因素,每个餐厅的总评级,班加罗尔是这样一个城市,拥有超过12,000家餐厅,餐厅供应来自世界各地的…

Android 源码编译方法

和你一起终身学习,这里是程序员Android 经典好文推荐,通过阅读本文,您将收获以下知识点: 一、查看项目所在分支二、切换到目标分支三、查看当前所在分支四、编译Android源码五、source Android 编译环境六、lunch 所需的编译项目七、单编 模块…

2.10 Bootstrap 响应式实用工具

文章目录 Bootstrap 响应式实用工具打印类 Bootstrap 响应式实用工具 Bootstrap 提供了一些辅助类,以便更快地实现对移动设备友好的开发。这些可以通过媒体查询结合大型、小型和中型设备,实现内容对设备的显示和隐藏。 需要谨慎使用这些工具&#xff0c…

Qt实现右键菜单栏显示

用到头文件 qmenu.h qevent.h qlabel.h代码 #pragma once // QtTestMenu2.h #include <QtWidgets/QWidget> #include "ui_QtTestMenu2.h" #include "qmenu.h" #include "qevent.h" #include "qlabel.h"class QtTestMenu2 : publ…

基于Nonconvex规划的配电网重构研究(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

【原理图专题】OrCAD Capture如何批量修改原理图网络名称

在实际的工作中,我们很少是从0到1。很多时候供应商或是前人已经给我们留下了电路图,我们要做的初级工作就是让这些标准电路为我们所用。 但事实却是,供应商他们自己公司有自己的一套画图命名标准,而我们自己也有一套命名规则。因为大为都是自己熟悉自己的,所以导致了不能…

【我们一起60天准备考研算法面试(大全)-第十天 10/60】

专注 效率 记忆 预习 笔记 复习 做题 欢迎观看我的博客&#xff0c;如有问题交流&#xff0c;欢迎评论区留言&#xff0c;一定尽快回复&#xff01;&#xff08;大家可以去看我的专栏&#xff0c;是所有文章的目录&#xff09;   文章字体风格&#xff1a; 红色文字表示&#…

PLL 设计理论

鉴相器的输出驱动电荷泵的开关&#xff0c;再经过滤波器得到一个输出电压&#xff0c;通过VCO产生一个频率&#xff0c;再通过分频器反馈回鉴相器。 杂散&#xff1a;常见的杂散分为参考杂散和小数杂散。参考杂散是指在锁相环输出信号的频谱中&#xff0c;特定频偏处出现的非理…