C++类和对象:运算符重载

左移运算符重载:

class Person
{friend ostream& operator<<(ostream& cout, Person& p);
public:Person();~Person();static int m_age;void showperson() const{cout << this->m << endl;}int m_A;int m_B;Person operator+(Person& p){Person temp;temp.m_A = this->m_A + p.m_A;temp.m_B = this->m_B + p.m_B;}
private:int m;
};
int Person::m_age = 10;
Person::Person():m(1),m_A(10),m_B(10)
{cout << "调用构造函数" << endl;
}Person::~Person()
{m = 0;cout << "调用析构函数" << endl;
}
ostream& operator<<(ostream& cout, Person& p)
{cout << "p.m_A= " << p.m_A << endl;cout << "p.m_B= " << p.m_B << endl;cout << "p.m= " << p.m;return cout;
}

函数调用运算符重载:(仿函数)
 

class MyPrint
{
public:MyPrint();~MyPrint();void operator()(string test){cout << test << endl;}
private:};void test01()
{MyPrint myprint;myprint("hello world");//匿名对象,即当前行执行完毕之后编译器自动释放MyPrint()("I love you");
}

递增与递减运算符重载:

int是占位参数,用于区分前置和后置递增

class MyInteger
{friend ostream& operator<<(ostream& cout,const MyInteger& myint);
public:MyInteger();~MyInteger();MyInteger& operator++(){//模仿++am_Num++;return *this;}MyInteger& operator--(){m_Num--;return *this;}MyInteger operator++(int){//模仿a++MyInteger t = *this;m_Num++;return t;}MyInteger operator--(int){MyInteger t = *this;m_Num--;return t;}
private:int m_Num;
};MyInteger::MyInteger()
{m_Num = 0;
}MyInteger::~MyInteger()
{
}
ostream& operator<<(ostream& cout,const MyInteger& myint)
{//注意这里如果不加const编译器会报错,因为myint++返回的不是引用cout << myint.m_Num;return cout;
}
void test01()
{MyInteger myint;cout << ++myint << endl;cout << myint << endl;cout << --myint << endl;cout << myint << endl;
}
void test02()
{MyInteger myint;cout << myint++ << endl;cout << myint << endl;cout << myint-- << endl;cout << myint << endl;
}

赋值运算符重载:

class Person
{
public:Person(int age);~Person();Person& operator=(Person& p){//相当于深拷贝if (m_Age != NULL){delete m_Age;m_Age = NULL;}m_Age = new int(*p.m_Age);return *this;}int* m_Age;
};
Person::Person(int age)
{m_Age = new int(age);
}
Person::~Person()
{if (m_Age != NULL){delete m_Age;m_Age = NULL;}
}

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

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

相关文章

docker部署docker运维工具

简介 主要功能:管理容器,管理镜像,管理容器网络 安装 拉取镜像 docker pull joinsunsoft/docker.ui:1.0.1 启动容器 docker run -d --name docker.ui --restart always -v /var/run/docker.sock:/var/run/docker.sock -p 10039:8999 joinsunsoft/docker.ui:1.0.1 使用 打…

基于鲸鱼优化的knn分类特征选择算法matlab仿真

目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.本算法原理 4.1 鲸鱼优化算法&#xff08;WOA&#xff09; 4.1.1 包围猎物 4.1.2 螺旋式搜索 4.1.3 更新策略 4.2 K近邻&#xff08;KNN&#xff09;分类器 4.3 基于WOA的KNN分类特征选择算法 5.完…

将Juniper虚拟防火墙vSRX导入EVE-NG

正文共&#xff1a;555 字 8 图&#xff0c;预估阅读时间&#xff1a;1 分钟 前面我们已经简单介绍了如何导入vSRX的VMware镜像到Workstation&#xff08;Juniper虚拟防火墙vSRX部署初体验&#xff09;&#xff0c;如何导入ESXi并简单操作WEB配置&#xff08;将Juniper虚拟防火…

2.2 反序数

描述 设N是一个四位数&#xff0c;它的9倍恰好是其反序数&#xff08;例如&#xff1a;1234的反序数是4321&#xff09; 求N的值 int main() {for(int i 1;i < 10;i)for(int j 0;j < 10;j)for(int k 0;k < 10;k)for(int l 1;l < 10;l){if((i*1000j*100k*10l)*…

【计算机网络基础篇】学习笔记系列之一《TCP/IP 网络模型》

文章目录 1、问题提出2&#xff0c;网络协议是分层的3&#xff0c;应用层4&#xff0c;传输层5&#xff0c;网络层6&#xff0c;网络接口层7&#xff0c;总结 1、问题提出 为什么要有 TCP/IP 网络模型&#xff1f; 不同设备上的进程间通信需要通过一套通用的网络协议进行网络通…

第二证券:北向资金连续第五日净流入,茅台、工行、五粮液等获加仓

沪指低收险守2700点关口&#xff0c;北向资金接连5日净流入。 2月5日&#xff0c;A股三大股指团体低开&#xff0c;三大股指均创阶段性新低后反弹&#xff0c;创业板指午后首先翻红且一度涨超3%&#xff0c;深成指和沪指也相继转涨。但商场做多情绪欠安&#xff0c;沪深股指重…

opensatck中windows虚拟机CPU核数显示异常问题处理

文章目录 一、问题描述二、元数据信息三、以32核的实例模版为例3.1 单槽位32核3.2 双槽位32核 总结 一、问题描述 openstack创建windows虚拟机的时候&#xff0c;使用普通的实例模版会出现CPU数量和实例模版不一致的问题。需要定制元数据才可以正常显示。 帖子&#xff1a;htt…

米贸搜|关于Facebook广告受限:在这些情况下,Meta会限制广告主的广告能力!

如果你被限制了投放广告&#xff0c;那么你会在Facebook上收到通知。 除了审查广告之外&#xff0c;Meta还监控和调查广告主在Meta技术上的行为&#xff0c;在某些情况下&#xff0c;Meta可能会对广告主施加限制&#xff0c;限制广告主的广告能力&#xff0c;这些限制旨在帮助保…

ChatGPT高效提问—prompt基础

ChatGPT高效提问—prompt基础 ​ 设计一个好的prompt对于获取理想的生成结果至关重要。通过选择合适的关键词、提供明确的上下文、设置特定的约束条件&#xff0c;可以引导模型生成符合预期的回复。例如&#xff0c;在对话中&#xff0c;可以使用明确的问题或陈述引导模型生成…

macbookpro和macbookair的区别?cleanmymac 怎么清理mac空间

苹果mac air和pro区别有&#xff1a;1、air采用了轻薄的设计&#xff0c;重量相对较轻&#xff0c;便于携带&#xff0c;而pro更加注重性能&#xff0c;所以比较重&#xff1b;2、air通常搭载较低功耗的处理器内存和存储容量相对较小&#xff0c;而pro配备了更强大的处理器、更…

基于Vue2用keydown、keyup事件实现长按键盘任意键(或组合键)3秒触发自定义事件(以F1键为例)

核心代码 <template></template> <script> export default {created() {//监听长按快捷键addEventListener("keydown", this.keydown);addEventListener("keyup", this.keyup);},destroyed(d) {//移除长按快捷键removeEventListener(&…

外汇天眼:外汇中的“直接套汇”是指什么?

外汇中的直接套汇又称地点套汇和两角套汇&#xff0c;由于两间汇率高低不同&#xff0c;同时在两个市场上买贱卖贵&#xff0c;从中赚取汇率差额。 例如&#xff1a;英镑的价格在伦敦较贵&#xff0c;或者说英镑在纽约就较便宜&#xff0c;而美元的价值在伦敦较便宜&#xff0c…

硬核:C++实现一个简单的图形用户界面(GUI),包括按钮、文本框和标签等控件

使用Qt库实现简单GUI的示例&#xff1a; #include <QtWidgets>int main(int argc, char** argv) {QApplication app(argc, argv);// 创建一个窗口QWidget window;// 创建一个标签控件QLabel* label new QLabel("Hello World", &window);// 创建一个文本框…

计算机毕业设计 | SpringBoot大型旅游网站 旅行后台管理系统(附源码)

1&#xff0c; 概述 1.1 项目背景 随着互联网技术的快速发展和普及&#xff0c;旅游行业逐渐转向线上&#xff0c;越来越多的游客选择在线预订旅游产品。传统的线下旅行社模式已不能满足市场需求&#xff0c;因此&#xff0c;开发一个高效、便捷的旅游网站成为行业的迫切需求…

算法-2-异或运算

按位异或&#xff1a;相同为0&#xff0c;不同为1 异或运算性质 1&#xff09;异或运算就是无进位相加&#xff08;ab写二进制形式每位相加时不进位&#xff09; 2&#xff09;异或运算满足交换律、结合律&#xff0c;也就是同一批数字&#xff0c;不管异或顺序是什么&#…

【Spring连载】使用Spring Data访问Redis(七)----Hash Mapping

【Spring连载】使用Spring Data访问Redis&#xff08;七&#xff09;----Hash Mapping 一、Hash Mappers二、Jackson2HashMapper 你可以使用Redis中的各种数据结构来存储数据。Jackson2JsonRedisSerializer可以转换JSON格式的对象。理想情况下&#xff0c;通过使用plain键&…

Stable Diffusion 模型下载:majicMIX lux 麦橘辉耀 - V3

文章目录 模型介绍生成案例案例一案例二案例三案例四案例五案例六案例七案例八案例九案例十 下载地址 模型介绍 非常推荐的一个非常绚丽的科幻、梦幻、玄幻般的大模型&#xff0c;由国人“Merjic”发布&#xff0c;下载量颇高。这个模型风格炸裂&#xff0c;远距离脸部需要inp…

071:vue中过滤器filters的使用方法(图文示例)

第071个 查看专栏目录: VUE ------ element UI 专栏目标 在vue和element UI联合技术栈的操控下&#xff0c;本专栏提供行之有效的源代码示例和信息点介绍&#xff0c;做到灵活运用。 提供vue2的一些基本操作&#xff1a;安装、引用&#xff0c;模板使用&#xff0c;computed&a…

Java接口与抽象类

接口 定义 Java中的接口是一种抽象类型&#xff0c;用于定义一组规范或行为。接口允许我们定义一组方法&#xff0c;这些方法没有具体的实现&#xff0c;而是由实现接口的类来提供具体的实现。 语法&#xff1a;接口的声明使用interface关键字&#xff0c;后面跟上接口的名称…

gem5学习(17):ARM功耗建模——ARM Power Modelling

目录 一、Dynamic Power States 二、Power Usage Types 三、MathExprPowerModels 四、Extending an existing simulation 五、Stat dump frequency 六、Common Problems 官网教程&#xff1a;gem5: ARM Power Modelling 通过使用gem5中已记录的各种统计数据&#xff0c;…