博客
关于我
C++第35课--函数对象分析 即 函数调用操作符重载
阅读量:377 次
发布时间:2019-03-04

本文共 1242 字,大约阅读时间需要 4 分钟。

本文学习自狄泰软件学院 唐佐林老师的 C++课程。

在实际的C++工程项目中,我们尽量少地使用原生的指针。例如:

  • 使用 string 类代替传统的字符指针
  • 使用 array 类代替传统的数组
  • 使用函数对象代替函数指针

实验2:函数调用操作符重载

实验1:解决方案1

#include 
#include
using namespace std;
int fib() {
static int a0 = 0;
static int a1 = 1;
int ret = a1;
a1 = a0 + a1;
a0 = ret;
return ret;
}
int main() {
for(int i=0; i<10; i++) {
cout << fib() << endl;
}
cout << endl;
for(int i=0; i<5; i++) {
cout << fib() << endl;
}
return 0;
}

实验2:函数调用操作符重载

#include 
#include
using namespace std;
class Fib {
int a0;
int a1;
public:
Fib() {
a0 = 0;
a1 = 1;
}
Fib(int n) {
a0 = 0;
a1 = 1;
for(int i=2; i<=n; i++) {
int t = a1;
a1 = a0 + a1;
a0 = t;
}
}
int operator()() {
int ret = a1;
a1 = a0 + a1;
a0 = ret;
return ret;
}
};
int main() {
Fib fib;
for(int i=0; i<10; i++) {
cout << fib() << endl;
}
cout << endl;
for(int i=0; i<5; i++) {
cout << fib() << endl;
}
cout << endl;
Fib fib2(10);
for(int i=0; i<5; i++) {
cout << fib2() << endl;
}
return 0;
}

转载地址:http://kpme.baihongyu.com/

你可能感兴趣的文章
Node-RED中将CSV数据写入txt文件并从文件中读取解析数据
查看>>
Node-RED中建立TCP服务端和客户端
查看>>
Node-RED中建立Websocket客户端连接
查看>>
Node-RED中建立静态网页和动态网页内容
查看>>
Node-RED中解析高德地图天气api的json数据显示天气仪表盘
查看>>
Node-RED中连接Mysql数据库并实现增删改查的操作
查看>>
Node-RED中通过node-red-ui-webcam节点实现访问摄像头并截取照片预览
查看>>
Node-RED中配置周期性执行、指定时间阶段执行、指定时间执行事件
查看>>
Node-RED安装图形化节点dashboard实现订阅mqtt主题并在仪表盘中显示温度
查看>>
Node-RED怎样导出导入流程为json文件
查看>>
Node-RED订阅MQTT主题并调试数据
查看>>
Node-RED通过npm安装的方式对应卸载
查看>>
node-request模块
查看>>
node-static 任意文件读取漏洞复现(CVE-2023-26111)
查看>>
Node.js 8 中的 util.promisify的详解
查看>>
node.js debug在webstrom工具
查看>>
Node.js HTTP模块详解:创建服务器、响应请求与客户端请求
查看>>
Node.js RESTful API如何使用?
查看>>
node.js url模块
查看>>
Node.js Web 模块的各种用法和常见场景
查看>>