头文件:

#pragma once
#include<iostream>
#include<vector>
using namespace std;
class Student
{
public:
Student(double hei):height(hei){}
double getheight() const { return height; }
~Student(){}
private:
double height;
}; vector<Student> s;
for(int i=;i<;i++)
s.???
// 定义一个函数对象类
// 用于统计容器中所有Student对象的身高
class AverageHeight
{
public:
// 构造函数,对类的成员变量作合理的初始化
AverageHeight()
: m_nCount(), m_nTotalHeight() {};
// 定义函数调用操作符“()”,
// 在其中完成统计的功能
void operator () (const Student& st)
{
// 将当前对象的身高累加到总身高中
// 这里的m_nTotalHeight记录了上次累加的结果,
// 这就是函数那失去的记忆
m_nTotalHeight += st.getheight();
// 增加已经统计过的Student对象的数目
++m_nCount;
}
// 接口函数,获得所有统计过的Student对象的平均身高
float GetAverageHeight()
{
if ( != m_nCount)
return (float)GetTotal() / GetCount();
}
// 获得函数对象类的各个成员变量
int GetCount() const
{
return m_nCount;
}
int GetTotal() const
{
return m_nTotalHeight;
}
// 函数对象类的成员变量,
// 用来保存函数执行过程中的状态数据
private:
int m_nCount; // 记录已经统计过的对象的数目
int m_nTotalHeight; // 记录已经统计过的身高总和
};

源文件:

#include"wuyong.h"
using namespace std;
int main()
{
// 创建函数对象
AverageHeight ah;
// 将函数对象应用到for_each()算法中以完成统计
ah = for_each(vecStu.begin(), vecStu.end(), ah);
// 从函数对象中获取它的记忆作为结果输出
cout << ah.GetCount() << "个学生的平均身高是:"
<< ah.GetAverageHeight() << endl;
system("pause");
return ;
}

c++中的函数对象《未完成》的更多相关文章

  1. Java中的函数对象

    初次听说java中的函数对象可能,比较的陌生.可以类比着来理解一下,人们常说java中没有了指针,殊不知,java中的对象引用就是指针,有时候我们说一个对象往往指的就是这个对象的引用,也就是说基本上把 ...

  2. STL中的函数对象实现负数的定义

    // // main.cpp // STL中的函数对象 // // Created by mac on 2019/5/2. // Copyright © 2019年 mac. All rights r ...

  3. 3.2 STL中的函数对象类模板

    *: STL中有一些函数对象类模板,如下所示: 1)例如要求两个double类型的x 和y 的积,可以: multiplies<double>()(x,y); 该表达式的值就是x*y的值. ...

  4. C++模板中的函数对象

    在C++模板类map中一个参数为Compare类型,该类型为一个比较函数,其完整定义如下: template< class Key, class T, class Compare = std:: ...

  5. Python中的函数对象与闭包

    函数在Python中是第一类对象,可以当做参数传递给其他函数,放在数据结构中,以及作为函数的返回结果. 下面的例子为接受另外一个函数作为输入并调用它 #foo.py def callf(func): ...

  6. python中的函数对象与闭包函数

    函数对象 在python中,一切皆对象,函数也是对象 在python语言中,声明或定义一个函数时,使用语句: def func_name(arg1,arg2,...): func_suite 当执行流 ...

  7. c++中的函数对象

    头文件wuyong.h: #pragma once #include<iostream> using namespace std; template<typename T> s ...

  8. Python中通过函数对象创建全局变量

    先看下面这段代码,显然无法work. 因为代码试图在TestVariableScope()中引用一个没有被定义的变量a.所以必须报错,如下图-1. 不过如果你将第2行代码注释掉.代码就能跑通了,如图- ...

  9. 【转载】javascript中的函数对象

    原文地址:http://www.cnblogs.com/phpzxh/archive/2009/09/16/1568137.html[侵删] 在javascript中函数的申明方式有四种 下面代码中一 ...

随机推荐

  1. 哈哈哈 迫于c#的语言特性java才加的注解

  2. maven的核心概念

    1 简单的核心概念 1.1 坐标 groupId.artifactId.version,很简单,这三个坐标定位到了该依赖的位置,有了它们就可以下载该依赖了. 1.2 依赖 如果一个jar包使用了另外一 ...

  3. Pycharm如何修改背景图(BackgroundColor)

    Outline 之前见到别人Eclipse自定义设置了背景图,在想 Pycharm是不是也可以设置?都是IDE嘛~ 没事捣鼓 Pycharm Settings 时,看到“Background Imag ...

  4. django.core.exceptions.ImproperlyConfigured: Requested setting DEFAULT_INDEX_TABLESPACE的解决办法(转)

    在python的开发中,遇到了这个错误: django.core.exceptions.ImproperlyConfigured: Requested setting DEFAULT_INDEX_TA ...

  5. CSS:列表样式(设置列表项的标志图案/位置)

    通过CSS 列表属性能够放置.改变列表项标志.或者将图像作为列表项标志. 代码整理自w3school:http://www.w3school.com.cn 效果图: watermark/2/text/ ...

  6. 你真的会用Gson吗?Gson使用指南

    你真的会用Gson吗?Gson使用指南(一) 你真的会用Gson吗?Gson使用指南(二) 你真的会用Gson吗?Gson使用指南(三) 你真的会用Gson吗?Gson使用指南(四)

  7. 正则表达式 - JavaScript描述

    正则表达式 - JavaScript描述 概述 正则表达式是被用来匹配字符串中的字符组合的模式.在JavaScript中,正则表达式也是对象. 创建正则表达式 var re = /abc/; // 使 ...

  8. nginx缓存原理

    一.HTTP字段理解 1.Expires: 该字段的http1.0时的规范,值为一个绝对时间的GMT格式的时间字符串,代表缓存资源的过期时间,在这个时点之前即命中缓存. 缺点:服务器返回的时间,可能与 ...

  9. Django-MTV(Day66)

    阅读目录 Django基本命令 视图层路由配置系统 视图层之视图函数 MTV模型 Django的MTV分别代表: Model(模型):负责业务对象与数据库的对象(ORM) Template(模板):负 ...

  10. git分支更新代码命令

    第一步: 查看状态  git status 第二步: 全部添加  git add --all 第三步: 再次查看状态  git status 第四步: 提交      git commit -m '备 ...