C++重载加号运算符实现两个结构体的相加

#include<iostream>
#include<string>

using namespace std;

struct S
{
	int a, b;
	string str;

	S operator+(const S &others)
	{
		S s1;
		s1.a = this->a + others.a;
		s1.b = this->a + others.a;
		s1.str += this->str;
		s1.str += others.str;
		return s1;
	}
};

int main()
{
	S s1, s2,s3;
	s1.a = 5;
	s1.b = 5;
	s1.str = "Hello, ";
	s2.a = 6;
	s2.b = 6;
	s2.str = "World!";
	s3 = s1 + s2;
	cout << s3.a << endl;
	cout << s3.b << endl;
	cout << s3.str << endl;
}

C++重载加号运算符实现两个结构体的相加

时间: 2024-10-14 05:29:38

C++重载加号运算符实现两个结构体的相加的相关文章

C++重载流运算符,将存储结构体的vector直接写入文件

我们知道,当vector很大的时候,如果使用循环的方式将其中的元素写入文件将非常费时,因此有没有办法将vector一次性写入文件呢? 采用流运算符重载的方法可以做到,不仅基本类型的vector可以一次性写入,存储struct的vector也是可以的,这里举一个简单的例子,声明结构体: struct point { double lat; //纬度 double lon; //经度 unsigned long long time; //时间 } 写一个类封装流运算符: class onepoint

两个结构体ifconf和ifreq

用ioctl获得本地ip地址时要用到两个结构体ifconf和ifreq,它们对于大多数人来说都是比较陌生的,这里给大家一种比较简单的理解方法,当然只一种帮助理解的方法,在描述中可能会有一些地方与真实定义有所出入,仅供参考. 首先先认识一下ifconf和ifreq: //ifconf通常是用来保存所有接口信息的 //if.h struct ifconf { int ifc_len; /* size of buffer */ union { char *ifcu_buf; /* input from

【Unity Shaders】学习笔记——SurfaceShader(二)两个结构体和CG类型

[Unity Shaders]学习笔记——SurfaceShader(二)两个结构体和CG类型 转载请注明出处:http://www.cnblogs.com/-867259206/p/5596698.html 写作本系列文章时使用的是Unity5.3. 写代码之前: 当然啦,如果Unity都没安装的话肯定不会来学Unity Shaders吧? 阅读本系列文章之前你需要有一些编程的概念. 在VS里面,Unity Shaders是没有语法高亮显示和智能提示的,VS党可以参考一下这篇文章使代码高亮显示

保存接口信息的两个结构体ifconf和ifreq

用ioctl获得本地ip地址时要用到两个结构体ifconf和ifreq,它们对于大多数人来说都是比较陌生的,这里给大家一种比较简单的理解方法,当然只一种帮助理解的方法,在描述中可能会有一些地方与真实定义有所出入,仅供参考. 首先先认识一下ifconf和ifreq: //ifconf通常是用来保存所有接口信息的 //if.h struct ifconf { int ifc_len; /* size of buffer */ union { char *ifcu_buf; /* input from

C#基础回顾(二)—页面值传递、重载与重写、类与结构体、装箱与拆箱

一.前言 -孤独的路上有梦想作伴,乘风破浪- 二.页面值传递 (1)C#各页面之间可以进行数据的交换和传递,页面之间可根据获取的数据,进行各自的操作(跳转.计算等操作).为了实现多种方式的数据传递,C#提供一下几种方式: 1.Query.String方式 2.Server.Transfer方式 3.Cookie方式 4.Session方式 5.Application方式 (2)实现方式 新建TestTransfer项目,添加TransferOne.aspx页面和TransferTwo.aspx页

Linux字符设备中的两个重要结构体(file、inode)

对于Linux系统中,一般字符设备和驱动之间的函数调用关系如下图所示 上图描述了用户空间应用程序通过系统调用来调用程序的过程.一般而言在驱动程序的设计中,会关系 struct file 和 struct inode 这两个结构体. 用户空间使用open()系统调用函数打开一个字符设备时( int fd = open("dev/demo", O_RDWR) )大致有以下过程: 在虚拟文件系统VFS中的查找对应与字符设备对应 struct inode节点 遍历字符设备列表(chardevs

C语言--&gt;(十四)结构体、宏、编译

知识点: 1.结构体 struct 2.typedef关键字 3.宏的定义 4.宏与函数的区别 5.文件包含和多文件编译 6.条件编译 ===========================结构体 思考:如果现在希望保存一个学生的信息,姓名,身高,年龄,地址,该如何保存 char name[64]; float height; int age; char addr[64]; 1.什么是结构体 struct 结构体指的是一种数据结构,是c语言中复合数据类型的一 种多种不同数据类型的集合 2.结构体

C和指针 (pointers on C)——第十章:结构体和联合(上)

第十章 结构和联合 这个部分先介绍了.运算符,可以供直接访问,还介绍了->运算符,它代替结构体指针的间接访问操作(*struct).xxx 这一章新手理解起来不算太难,没有学过操作系统的话理解位段.对齐等概念会有一些问题. 越发的说明了指针和内存绝对是C的核心. 总结: 结构声明列出了结构包含的成员列表,不同类型的值可以存储在一起. 不同的结构声明即使他们的成员列表相同也被认为是不同的类型. 声明结构时使用typedef创建一种新类型是一个好方法. typedef struct { int a;

C语言学习笔记-9.结构体

一.结构体的定义与使用 1.结构体内部的每个变量称为字段或成员变量 2.定义方法:struct <结构体标记> {-}; 或 typedef struct {-} <结构体类型名>; 变量定义:struct <结构体标记> 变量1,2- 或 <结构体类型名> 变量1,2- 3.成员变量的访问: x.成员变量名           (*px).成员变量名           px->成员变量名 "->"称为指向运算符或箭头运算符