C++重载 强制类型转换运算符

news2024/7/6 19:21:59

文章目录

  • 1.函数调用运算符重载
  • 2.强制类型转换运算符重载
    • 2.1对运算符的认识
    • 2.2类型强制转换运算符

1.函数调用运算符重载

class Display
{
public:
	void operator()(string text)
	{
		cout << text << endl;
	}

};
class Add
{
public:
	int operator()(int v1, int v2)
	{
		return v1 + v2;
	}
};

int main() 
{
	Display Print;
	Print("hello world");

	Add add;
	int ret = add(10, 10);
	cout << "ret = " << ret << endl;

	//匿名对象调用  
	cout << "Add()(100,100) = " << Add()(100, 100) << endl;
	return 0;
}

在这里插入图片描述

2.强制类型转换运算符重载

2.1对运算符的认识

C++ 中类型的名字/类的名字本身是一种类型强制转换运算符

2.2类型强制转换运算符

  1. 单目运算符
  2. 可以被重载为成员函数[不能被重载为全局函数]

重载 int 类型强制转换运算符

class Test
{
public:
	Test(int a = 0, int b = 0) 
		:_a(a)
		, _b(b) 
	{

	}
	//重载 强制类型转换运算符时 
	// 返回值类型是确定的 
	// 即运算符本身代表的类型
	// 不需要指定返回值类型
	operator int()
	{ 
		return _a; 
	}
private:
	int _a;
	int _b;
};
int main()
{
	Test obj(10, 20);
	//obj.operator int()
	cout << (int)obj << endl;  //10

	//类A如果对int进行了  强制类型转换运算符重载
	//那么类A的对象参与含int这个类型的表达式时 
	//该类A的对象就会调用operator int() 
	// 即类A的对象一旦出现在含int这个类型的表达式时
	// 这个对象在此处的值就是调用operator int()这个函数的返回值

	int n = 5 + obj;           //int n = 5 + obj.operator int()
	cout << n << endl;         //15
}

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

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

相关文章

在Win11上部署ChatGLM2-6B详细步骤--(上)准备工作

一&#xff1a;简单介绍 ChatGLM-6B是清华大学知识工程和数据挖掘小组&#xff08;Knowledge Engineering Group (KEG) & Data Mining at Tsinghua University&#xff09;发布的一个开源的对话机器人。根据官方介绍&#xff0c;这是一个千亿参数规模的中英文语言模型。并…

C++继承总结(下)——菱形继承

一.什么是菱形继承 菱形继承是多继承的一种特殊情况&#xff0c;一个类有多个父类&#xff0c;这些父类又有相同的父类或者祖先类&#xff0c;那么该类就会有多份重复的成员&#xff0c;从而造成调用二义性和数据冗余。 class Person {public:Person(){cout << "P…

新手小白怎么选择配音软件?

现在的配音软件软件很多&#xff0c;各种类型的都比较多&#xff0c;对于新手小白来说不知该如何选择&#xff0c;今天就来给你分享几款好用的配音软件。不论是制作短视频还是制作平常音频都完全可以。 第一款&#xff1a;悦音配音 这是一款专业的视频配音软件&#xff0c;多端…

内存马概念

内存马概念 文章目录 内存马概念木马演变内存使用条件内存缺点JAVA Web三大组件Listener:监听器servelet请求流程内存马分类内存演示内存马植入方式案例shiro反序列化漏洞植入内存马 木马演变 内存使用条件 1. 禁止外联 2. 文件监控、查杀 3. spring Boot&#xff0c;不支持js…

【已解决】goland每次都自动删除我import的包

需要2步&#xff1a; 第一步&#xff1a;取消Optimize imports on the fly勾选 第二步&#xff1a;取消Optimize imports

IO进程及相关函数

什么是环境变量 http://t.csdnimg.cn/nPrMu 进程&#xff1a;是程序执行的一次执行过程&#xff0c;是动态&#xff0c;涉及到资源分配&#xff0c;包含创建、调度、执行 程序&#xff1a;存放在磁盘空间上的一个二进制文件&#xff0c;是指令集合&#xff0c;是静态的&#xf…

MacOS系统Chrome开发者模式下载在线视频

操作流程 # step1. 进入开发者模式 command option i # step2. 在搜索栏中搜索 getHttpVideoInfo.do?关键词 # step3. 在Preview的Json界面中找到video&#xff0c;然后选择不同resolution & duration的视频片段&#xff1b; # step4. 选择合适的video::chapters, 选择…

【鸿蒙软件开发】ArkTS基础组件之Marquee(文字跑马灯)、QRCode(二维码生成)

文章目录 前言一、Marquee组件1.1 子组件1.2 创建Marquee组件参数 1.3 属性1.4 事件1.5 示例代码 二、QRCode2.1 子组件2.2 接口2.3 参数2.4 属性2.5 事件2.6 示例代码 总结 前言 Marquee组件&#xff1a;跑马灯组件&#xff0c;用于滚动展示一段单行文本&#xff0c;仅当文本…

python+requests接口自动化测试框架

1、首先&#xff0c;我们先来理一下思路。 正常的接口测试流程是什么&#xff1f; 脑海里的反应是不是这样的&#xff1a; 确定测试接口的工具 —> 配置需要的接口参数 —> 进行测试 —> 检查测试结果&#xff08;有的需要数据库辅助&#xff09; —> 生成测试报…

算法通关村第三关-白银挑战双指针思想

大家好我是苏麟 , 今天带来算法第三关 . 本期大纲 元素奇偶移动专题 元素奇偶移动专题 描述 : 给你一个整数数组 nums&#xff0c;将 nums 中的的所有偶数元素移动到数组的前面&#xff0c;后跟所有奇数元素。 返回满足此条件的 任一数组 作为答案。 题目 : LeetCode 905.…

成人自考-英语二-连词

感谢内容提供者&#xff1a;金牛区吴迪软件开发工作室 接上一篇&#xff1a;成人自考-英语二-形容词 文章目录 一、连词分类1.并列连词-连接词与词、句与句&#xff08;1&#xff09;词 并列连词 词&#xff08;2&#xff09;句子1 并列连词 句子2 2.从属连词-连接从句&…

私有化部署企业IM即时通讯app,群聊多样化管控

随着企业内部沟通和协作的重要性不断增长&#xff0c;私有化部署企业即时通讯&#xff08;IM&#xff09;app成为了企业保护内部信息安全的一种重要手段。在这个领域&#xff0c;安全专属的移动数字化平台WorkPlus&#xff0c;支持私有化部署&#xff0c;涵盖即时通讯和办公应用…

保姆级认识AVL树【C++】(精讲:AVL Insert)

目录 前言 一&#xff0c;概念 二&#xff0c;定义 三&#xff0c;insert 1. 插入情况 情况一&#xff1a; 情况二&#xff1a; 情况三&#xff1a; 2. 旋转方法 法一&#xff1a;左单旋法 法二&#xff1a;右单旋法 法三&#xff1a;先左后右双旋法 法四&#xf…

67 内网安全-域横向smbwmi明文或hash传递

#知识点1: windows2012以上版本默认关闭wdigest&#xff0c;攻击者无法从内存中获取明文密码windows2012以下版本如安装KB2871997补丁&#xff0c;同样也会导致无法获取明文密码针对以上情况&#xff0c;我们提供了4种方式解决此类问题 1.利用哈希hash传递(pth&#xff0c;ptk等…

递归为什么这么难?一篇文章带你了解递归

递归为什么这么难&#xff1f;一篇文章带你了解递归 美国计算机科学家——彼得多伊奇(L Peter Deutsch)在《程序员修炼之道》(The Pragmatic Programmer)一书中提到“To Iterate is Human, to Recurse, Divine”——我理解的这句话为&#xff1a;人理解迭代&#xff0c;神理解…

电脑下载视频号视频:微信视频号如何下载到电脑桌面上?

很多人做视频的时候需要将视频号的视频下载到电脑上&#xff0c;该如何操作呢&#xff1f;接下来我们通过电脑下载视频号视频希望对大家有所帮助。 方法一&#xff1a;使用在线视频下载网站 有一些在线视频下载网站可以帮助你从视频号上下载视频到电脑。你只需将视频的链接复制…

三个禁止使用U盘的方案

三个禁止使用U盘的方案 安企神U盘管理系统下载使用 U盘是一种小型便携式的存储设备&#xff0c;可以方便地传输和存储各种类型的数据&#xff0c;但也因此带来了一些安全隐患。在一些特殊的场合&#xff0c;如公司、商业场地等&#xff0c;为了保护内部数据被盗取外泄&#x…

怎么才能写好宣传软文?媒介盒子为你揭秘

数字化时代改变了企业的宣传方式&#xff0c;软文成为企业宣传的主要方式&#xff0c;但是企业真的会写宣传软文吗&#xff1f;为什么宣传软文不起效果&#xff1f;下面媒介盒子先和大家分享宣传软文的写作技巧 一、为什么要宣传 企业为什么需要宣传&#xff0c;主要有三类情况…

JS实现商品SKU

<!DOCTYPE html> <html> <head><title>商品SKU</title><link rel"stylesheet" href"element/css/element.css"><style>*{ margin:0; padding:0px; box-sizing: border-box; }ul,li{ list-style-type: none;}bod…

Python武器库开发-高级特性篇(八)

高级特性篇(八) 高阶函数 Python作为一门高级编程语言&#xff0c;拥有着强大的函数式编程能力。其中高阶函数就是Python函数式编程的重要组成部分。在Python中&#xff0c;函数可以被当作变量一样进行操作&#xff0c;包括作为参数传递给其他函数&#xff0c;或者作为返回值…