当前位置: 首页 > wzjs >正文

做自媒体关注的网站全网最全搜索引擎app

做自媒体关注的网站,全网最全搜索引擎app,东营做网站,微信网站建设协议指针代表内存中地址标识符,变量,数组都是存储内存中的数据。所以可以获得它们的地址,用指针来表示这块内存。 如图输出内存中的地址。 对于一个函数来说,也是内存中存储这段数据,所以我们也可以获取函数的地址。 函数…

指针代表内存中地址标识符,变量,数组都是存储内存中的数据。所以可以获得它们的地址,用指针来表示这块内存。

如图输出内存中的地址。

对于一个函数来说,也是内存中存储这段数据,所以我们也可以获取函数的地址。

函数指针的声明方式

 

下面我们来看一个简单函数指针使用

#include<iostream>
using namespace std;
double mutiply(double a, double b)
{return a * b;
}
double add(double a, double b)
{return a + b;
}
int main()
{double(*ptr)(double,double ) = mutiply;double res = ptr(2, 3);double res1 = (*ptr)(2, 3);cout << "ress=" << res << " res1=" << res1 << endl;ptr = &add;   //凡是符合这样接口的函数都可以使用这样的指针来调用double res3 = ptr(1, 2);cout << "res3=" << res3 << endl;}

这种函数的定义方式看上去比较繁琐,我们在函数指针的声明前面加上typedefine,这样ptr就不在是一个变量而是一个类型别名,代表指向这样一个函数的指针类型,为了方便讲typedefine定义的指针类型别名与函数指针区分开来,我们可以将别名用大写字母作为区分。

代码如下

#include<iostream>
using namespace std;
//typedef double (*FuncTypeptr)(double ,double);
typedef double (FuncTypeptr)(double, double);
double mutiply(double a, double b)
{return a * b;
}
int main()
{//FuncTypeptr ptr1= mutiply;FuncTypeptr* ptr1 = mutiply;double res = ptr1(1,2);cout << "res=" << res << endl;
}

 

函数指针在C语言中的使用

在排序函数中传入compare函数指针,这样排序函数就可以通过闯入的指针来判断数值的大小。

代码如下

#include<vector>
#include<iostream>
#include<algorithm>
using namespace std;
bool compare(float a, float b)
{return a < b;
}
int main()
{vector<float>num{ 0,1,2,3,6,3,7,11 };sort(num.begin(), num.end(), compare);for (auto a : num)cout << a << " ";
}

在c++中我们可以通过重载一个类的函数运算符,来实现函数对象,使用函数对象代替函数指针。

代码如下

#include<vector>
#include<iostream>
#include<algorithm>
using namespace std;
class Compare
{
public:bool operator()(float a, float b){return a < b;}
};
int main()
{vector<float>num{ 0,1,2,3,6,3,7,11 };sort(num.begin(), num.end(), Compare());for (auto a : num)cout << a << " ";
}

 

 

#include<vector>
#include<iostream>
using namespace std;class DemoClass {
public:double add(double a, double b) { return a + b; };double multiply(double a, double b) { return a * b; };
};int main()
{double (DemoClass:: * ptrMemberFunc)(double,double);ptrMemberFunc = &DemoClass::add;DemoClass obj;double result = (obj.*ptrMemberFunc)(1,2);cout << result << endl;DemoClass* pobj = &obj;ptrMemberFunc = &DemoClass::multiply;result = (pobj->*ptrMemberFunc)(1, 2);cout << result << endl;
}

 同样适用于多态类中的虚函数

 

http://www.dtcms.com/wzjs/397852.html

相关文章:

  • 南通网站建设方法营销案例网站
  • 中国电子商务网站seo分析师招聘
  • 专业做农牧应聘的网站可以发外链的论坛有哪些
  • 建设工程资料下载网站高端网站建设案例
  • 做网站怎样投放广告网站运营主要做什么工作
  • 网站建设行业有什么认证吗关键词搜索热度查询
  • 网站注册域名备案企业培训系统
  • 阐述电子商务网站的建设要求友情链接检测方法
  • 微信服务号可以做万网站么视频剪辑培训班一般学费多少
  • 如何在网站中做二级下拉菜单windows优化大师兑换码
  • 网站建设参考企业网站推广方案策划
  • 做好网站开发工作总结免费发广告网站
  • 网站建设文化服务公司seo推广一个月见效
  • 网站审批号关键词推广系统
  • 银川网站建设公司引擎搜索大全
  • 广东省建设安全监督站的网站seo的课谁讲的好
  • 用网站空间可以做有后台的网站吗自己个人怎样做电商
  • php 网站开发流程页面优化
  • laravel 跳转到其他网站软文代写平台有哪些
  • 广东汽车品牌网站建设专业的网页制作公司
  • 高端网站教建设怎样创建自己的电商平台
  • 公司有域名的怎么建设网站成都seo招聘信息
  • 哪里可以接一些网站项目做万网的app叫什么
  • 上海平台网站建设友情链接还有用吗
  • 寺院的网站怎么做温州云优化seo
  • 做本地网站持续优化完善防控措施
  • 哈尔滨网页设计网络优化是做什么的
  • wordpress 企業網深圳专业seo
  • 内蒙古网站备案百度seo优化软件
  • 做网站的分辨率要多大好搜搜索引擎