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

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

本文学习自狄泰软件学院 唐佐林老师的 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/

你可能感兴趣的文章
npm包管理深度探索:从基础到进阶全面教程!
查看>>
npm升级以及使用淘宝npm镜像
查看>>
npm发布包--所遇到的问题
查看>>
npm发布自己的组件UI包(详细步骤,图文并茂)
查看>>
npm和package.json那些不为常人所知的小秘密
查看>>
npm和yarn清理缓存命令
查看>>
npm和yarn的使用对比
查看>>
npm如何清空缓存并重新打包?
查看>>
npm学习(十一)之package-lock.json
查看>>
npm安装 出现 npm ERR! code ETIMEDOUT npm ERR! syscall connect npm ERR! errno ETIMEDOUT npm ERR! 解决方法
查看>>
npm安装crypto-js 如何安装crypto-js, python爬虫安装加解密插件 找不到模块crypto-js python报错解决丢失crypto-js模块
查看>>
npm安装教程
查看>>
npm报错Cannot find module ‘webpack‘ Require stack
查看>>
npm报错Failed at the node-sass@4.14.1 postinstall script
查看>>
npm报错fatal: Could not read from remote repository
查看>>
npm报错File to import not found or unreadable: @/assets/styles/global.scss.
查看>>
npm报错unable to access ‘https://github.com/sohee-lee7/Squire.git/‘
查看>>
npm淘宝镜像过期npm ERR! request to https://registry.npm.taobao.org/vuex failed, reason: certificate has ex
查看>>
npm版本过高问题
查看>>
npm的“--force“和“--legacy-peer-deps“参数
查看>>