C++学习七 C++实现add(1)(2)(3)
一、代码实现:
class Yoba
{
public:
Yoba(int n) : _n(n) {}
Yoba operator() (int n) { return Yoba(_n + n); }
bool operator== (int n) { return _n == n; }
int operator+ (int n) { return _n + n; }
int operator- (int n) { return _n - n; }
friend bool operator== (int n, const Yoba & y) { return n == y._n; } private:
int _n;
}; auto add(int n)
{
return Yoba(n);
}
这里对于对于功能实现add(1)(2)(3), 这里用到了()符号的重载。
二、这里对于类的实现做一些讲解:
这里有一个例子:
class CountPeople
{
public:
//构造函数
CountPeople() :number(), _size(), T()
{
cout << "number of the C is " << number << endl;
}
//析构函数
~CountPeople()
{}
//初始化参数列表的结构
CountPeople(int n) :number(n)
{
cout << "number is "<<number<<endl;
}
//方法接口,operator 重载操作符()
CountPeople operator() (int n)
{
return CountPeople(number + n);
}
int operator+ (int n)
{
return number + n;
}
friend bool operator== (const CountPeople& y,int n ) { return n == y.number; }
// bool operator== (int n) { return n == number; }
int GetNumber();
int GetSize();
private:
int _size;
int number;
int T;
};
上面是一个类的结构。
对于一些方法,可以在类的外部实现。
int CountPeople::GetNumber()
{
return number;
}
int CountPeople::GetSize()
{
return _size;
}
一个类的结构:
构造函数
析构函数
私有变量
方法。
三、如果需要将类不放在main里面,那么在cpp里面的分布为:
| cpp | main.cpp | usage.cpp | usage.hpp |
| 内容 |
#include "usage.hpp" int main(void) { return 0; } |
类的方法具体内容 | 类的定义 |
具体分布如下:



四、CountPeople(1)(3)的调用过程
先是调用CountPeople(1)
然后调用()重载函数
再调用CountPeople(3)
C++学习七 C++实现add(1)(2)(3)的更多相关文章
- MyBatis学习七:spring和MyBatis整合
<\mybatis\day02\16mybatis和spring整合-sqlSessionFactory配置.avi;> MyBatis学习七:spring和MyBatis整合.逆向工程 ...
- SVG 学习<七> SVG的路径——path(1)直线命令、弧线命令
目录 SVG 学习<一>基础图形及线段 SVG 学习<二>进阶 SVG世界,视野,视窗 stroke属性 svg分组 SVG 学习<三>渐变 SVG 学习<四 ...
- day 85 Vue学习七之vue-cookie
Vue学习七之vue-cookie 通过vue如何操作cookie呢 参考链接:https://www.jianshu.com/p/535b53989b39 第一步:安装vue-cookies ...
- (转)MyBatis框架的学习(七)——MyBatis逆向工程自动生成代码
http://blog.csdn.net/yerenyuan_pku/article/details/71909325 什么是逆向工程 MyBatis的一个主要的特点就是需要程序员自己编写sql,那么 ...
- Android 学习笔记之AndBase框架学习(七) SlidingMenu滑动菜单的实现
PS:努力的往前飞..再累也无所谓.. 学习内容: 1.使用SlidingMenu实现滑动菜单.. SlidingMenu滑动菜单..滑动菜单在绝大多数app中也是存在的..非常的实用..Gith ...
- MySql学习(七) —— 查询性能优化 深入理解MySql如何执行查询
本篇深入了解查询优化和服务器的内部机制,了解MySql如何执行特定查询,从中也可以知道如何更改查询执行计划,当我们深入理解MySql如何真正地执行查询,明白高效和低效的真正含义,在实际应用中就能扬长避 ...
- Linux 学习 (七) 挂载命令 & 用户登陆查看
Linux达人养成计划 I 学习笔记 挂载命令 mount:查询系统中已经挂载的设备 mount -a:根据配置文件 /etc/fstab 的内容,自动挂载 mount [-t 文件系统] [-o 特 ...
- Python3.5 学习七
心灵鸡汤 好书推荐:消费者行为学.围城.活着.盲井.三体.北京折叠 静态方法: @staticmethod #名义上归类管,和类没什么关系,只是引用用"." 在静态方法中,无法访问 ...
- 侯捷STL学习(七)--深度探索vector&&array
layout: post title: 侯捷STL学习(七) date: 2017-06-13 tag: 侯捷STL --- 第十六节 深度探索vector vector源码剖析 vector内存2倍 ...
随机推荐
- Oracle impdp导入数据临时表空间与undo表空间爆满解决实例
Oracle impdp导入数据临时表空间与undo表空间爆满解决实例 [日期:2018-01-24] 来源:Linux社区 作者:rangle [字体:大 中 小] 针对Oracle数据迁移, ...
- SSH agent 的使用 - 资料摘录
下面是一些ssh agent的资料简要摘录,网路上的相关的文章已经很多了: ssh 推荐的登录方式是使用私钥登录.但是如果生成私钥的时候,设置了口令(passphrase),每次登录时需要输入口令也很 ...
- Android Recovery升级原理
摘要 Recovery模式指的是一种可以对安卓机内部的数据或系统进行修改的模式(类似于windows PE或DOS).也可以称之为安卓的恢复模式,在这个所谓的恢复模式下,我们可以刷入新的安卓系统,或者 ...
- Scrapy的Spider类和CrawlSpider类
Scrapy shell 用来调试Scrapy 项目代码的 命令行工具,启动的时候预定义了Scrapy的一些对象 设置 shell Scrapy 的shell是基于运行环境中的python 解释器sh ...
- Linux别名工具alias的使用
偶然发现Linux支持自定义命令 现在Linux环境上经常有多个python环境,但是python2马上要停止维护了,所以我想多使用python3,但是Linux上的python命令调用的是pytho ...
- 201871010116-祁英红《面向对象程序设计(java)》第十四周学习总结
博文正文开头格式:(2分) 项目 内容 <面向对象程序设计(java)> https://home.cnblogs.com/u/nwnu-daizh/ 这个作业的要求在哪里 https:/ ...
- acwing 2 零一背包问题
地址 https://www.acwing.com/problem/content/description/2/ 题目描述有 N 件物品和一个容量是 V 的背包.每件物品只能使用一次. 第 i 件物品 ...
- React: React的组件状态机制
一.简介 在React中,有两个核心的默认属性,分别是state和props.state会记录组件的状态,React根据状态的变化,会对界面做相应的调整或渲染.props则是数据流向属性,React通 ...
- Element类
ElementTree API主要包含在Element类中,ElementTree API就是XML树相关的函数 追加子节点有两种方式,一种是使用append(),另一种是使用SubElement() ...
- 【Linux命令】文件目录管理命令7个(touch、mkdir、cp、mv、rm、dd、file)
目录 touch创建空白文档或设置文件时间 mkdir创建空白目录 cp复制文件或目录 mv剪切文件或重命名文件 rm删除文件或目录 dd按照指定大小和个数的数据库来复制文件或转换文件 file查看文 ...