c++ 泛型的赋值运算符怎么写 简单实验

1.概要

1.泛型的赋值运算符怎么写
A operator=(const A& a)
A<T> operator=(const A<T>& a)
那个是正确的呢?
结果:都可以,但是不能重复

2.代码

#include <iostream>
using namespace std;class B {
public:B operator=(const B& b) {cout << "Assignment operator B\n";return *this;}
};namespace T1 {void test() {B a;B b;a = b;}
}namespace T2 {template<class T>class A {public:int a;//赋值运行符是否需要T:用没问题A<T> operator=(const A<T>& a) {cout << "Assignment operator A<T>\n";return *this;}};void test() {A<B> a;A<B> b;a = b;}
}
namespace T3 {template<class T>class A {public:int a;//赋值运行符是否需要T:不用也没问题A operator=(const A& a) {cout << "Assignment operator A\n";return *this;}};void test() {A<B> a;A<B> b;a = b;}
}
namespace T4 {class C {public://判断右值是否必须是常量C operator=(C& b) {cout << "Assignment operator C\n";return *this;}};void test() {C a;C b;a = b;}
}int main()
{T1::test();T2::test();T3::test();T4::test();cout << "Hello World!\n";
}

3.运行结果

Assignment operator B
Assignment operator A<T>
Assignment operator A
Assignment operator C
Hello World!

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

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

相关文章

C++设计模式探讨(2)-单例模式

介绍 这段介绍来自网络&#xff1a; 单例模式是一种创建型的软件设计模式&#xff0c;在工程项目中非常常见。通过单例模式的设计&#xff0c;使得创建的类在当前进程中只有一个实例&#xff0c;并提供一个全局性的访问点&#xff0c;这样可以规避因频繁创建对象而导致的内存…

Go语言第二篇-基本数据类型与转义字符

-———————————————————————————— 随便记录没什么顺序&#xff1a; ———————————————————————————— &#x1f523;本部分内容记录了以下知识点&#xff1a; &#x1f30f;转义字符的使用 &#x1f30f;基本数据类型的使…

node項目的开发

01 创建package.json文件&#xff1a; npm init 创建一个package.json 项目描述的文件。package name &#xff1a; 包名version&#xff1a;版本description&#xff1a;项目描述entry point&#xff1a;入口文件 默认index.jstset command&#xff1a;测试命名git reposito…

协程/线程/进程的简单应用

使用FastApi模拟网络IO接口 import timefrom fastapi import FastAPIapp FastAPI()# 文件名 api.py # 运行: uvicorn api:app --reloadapp.get("/sleep/{times}") def sleep(times: int):# 模拟接口耗时time.sleep(times)return {"sleep": times}async…

rc_visard 3D Stereo Senso

1 简介 rc_visard 3D立体视觉传感器 支持的接口标准 GenICam Generic Interface for CamerasGigE Gigabit Ethernet 词汇表 SGM semi-global matching 半全局匹配 SLAM Simultaneous Localization and Mapping 即时定位与地图构建 2 安全 3 硬件规格 坐标系 rc_visar…

TypeScript 中 interface 和 type 的使用#记录

一、interface&#xff1a;接口 interface A{label: string; }const aa ((aObj: A) > {console.log(aObj.label);//123return aObj.label; })aa({label: 123}) 1、可选属性 interface A{label: string;age?: number; } 2、只读属性 interface A{label: string;age?:…

231 基于matlab的北斗信号数据解析

基于matlab的北斗信号数据解析&#xff0c;多通道和单通道接收到的北斗信号数据&#xff0c;利用接收到的北斗数据&#xff08;.dat .txt文件&#xff09;&#xff0c;进行解析&#xff0c;得到初始伪距&#xff0c;平滑伪距&#xff0c;载波相位&#xff0c;并计算其标准差&am…

代码随想录训练营23day-贪心算法

一、贪心算法 贪心算法核心思想是局部最优&#xff0c;以确定全局最优。当然需要使用数学归纳去总结&#xff0c;但是实际应用过程&#xff0c;可以举反例来验证是不是可以使用贪心算法。参考代码随想录 贪心算法一般分为如下四步&#xff1a; 将问题分解为若干个子问题找出…

翱途开发平台新手上路-体验APP移动手机办公

O2OA(翱途)开发平台拥有配套的移动办公APP&#xff0c;支持IOS和安卓端&#xff0c;用户可在连接O2云之后&#xff0c;使用APP使用移动办公。移动办公APP开放源代码&#xff0c;不会产生任何费用。本篇主要简单讲述初如何完成服务器连接O2云&#xff0c;实现移动办公。 一、先决…

Barnes-Hut t-SNE:大规模数据的高效降维算法

在数据科学和分析中&#xff0c;理解高维数据集中的底层模式是至关重要的。t-SNE已成为高维数据可视化的有力工具。它通过将数据投射到一个较低维度的空间&#xff0c;提供了对数据结构的详细洞察。但是随着数据集的增长&#xff0c;标准的t-SNE算法在计算有些困难&#xff0c;…

什么是IoT?

什么是IoT&#xff1f; IoT&#xff0c;即物联网&#xff08;Internet of Things&#xff09;&#xff0c;是通过信息传感设备和互联网将各种物品连接起来&#xff0c;实现智能化的识别、定位、跟踪、监控和管理的网络系统。 以下是关于IOT的一些详细解释&#xff1a; 基本概…

JVM之本地方法栈和程序计数器和堆

本地方法栈 本地方法栈是为虚拟机执行本地方法时提供服务的 JNI&#xff1a;Java Native Interface&#xff0c;通过使用 Java 本地接口程序&#xff0c;可以确保代码在不同的平台上方便移植 不需要进行 GC&#xff0c;与虚拟机栈类似&#xff0c;也是线程私有的&#xff0c;…

OCP Java17 SE Developers 复习题13

答案 D, F. There is no such class within the Java API called ParallelStream, so options A and E are incorrect. The method defined in the Stream class to create a parallel stream from an existing stream is parallel(); therefore, option F is correct, and o…

Spring源码中的抽象工厂模式

Spring 框架中广泛运用了抽象工厂模式来实现其核心组件的创建与管理。以下是源码分析&#xff1a; 源码分析&#xff1a; 1. BeanFactory 与其实现 org.springframework.beans.factory.BeanFactory 是 Spring 中最基础的工厂接口&#xff0c;它代表了抽象工厂模式中的“抽象…

Spring Boot分段处理List集合多线程批量插入数据

项目场景&#xff1a; 大数据量的List集合&#xff0c;需要把List集合中的数据批量插入数据库中。 解决方案&#xff1a; 拆分list集合后&#xff0c;然后使用多线程批量插入数据库 1.实体类 package com.test.entity;import lombok.Data;Data public class TestEntity {priv…

Python入门:使用Python实现简单的猜数字游戏

Python是一种解释型、交互式、面向对象的编程语言&#xff0c;其设计哲学强调代码的可读性&#xff0c;并允许开发者用少量代码表达想法。在本文中&#xff0c;我们将通过编写一个简单的猜数字游戏来展示Python的基础知识和编程逻辑。 游戏描述 游戏开始时&#xff0c;程序会…

数字化转型过程中所面临的挑战以及应对这些挑战的策略

随着信息技术的快速发展&#xff0c;企业为了提升运营效率、优化资源配置&#xff0c;往往会在不同部门建立各自的信息系统。然而&#xff0c;这些系统的孤立性、功能重叠以及数据不一致性等问题逐渐凸显&#xff0c;导致企业业务流程受阻&#xff0c;难以形成高效的协同作战能…

Spring源码中的简单工厂模式

Spring 源码中广泛运用了各种设计模式,其中包括简单工厂模式。简单工厂模式在 Spring 中主要用于简化对象的创建过程,将对象的创建逻辑集中管理,从而使得客户端代码无需关心具体的对象创建细节,只需与工厂交互就能获取所需的对象实例。这种设计有助于提高代码的可读性、可维…

高斯溅射融合之路(一)- webgl渲染3d gaussian splatting

大家好&#xff0c;我是山海鲸的技术负责人。之前已经写了一个GIS融合系列。其实CesiumJS的整合有相当的难度&#xff0c;同时也有很多方面的工作&#xff0c;很难在几篇文章内写完&#xff0c;整个山海鲸团队也是投入了接近两年的时间&#xff0c;才把周边整套工具链进行了完善…

prometheus服务端部署

prometheus 安装 下载 # https://prometheus.io/download/wget https://github.com/prometheus/prometheus/releases/download/v2.34.0/prometheus-2.34.0.linux-amd64.tar.gztar -zxf prometheus-2.34.0.linux-amd64.tar.gz -C /data0/prometheus-2.34.0sudo adduser prome…