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

成都建网站的公司成品网站1688入口的功能介绍

成都建网站的公司,成品网站1688入口的功能介绍,网页美工实训心得,学校 网站建设招聘指针代表内存中地址标识符,变量,数组都是存储内存中的数据。所以可以获得它们的地址,用指针来表示这块内存。 如图输出内存中的地址。 对于一个函数来说,也是内存中存储这段数据,所以我们也可以获取函数的地址。 函数…

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

如图输出内存中的地址。

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

函数指针的声明方式

 

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

#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/606831.html

相关文章:

  • 北滘网站建设公司自适应h5网站
  • 51制作视频mv网站北京网站建设中企云达
  • 什么网站可以做设计兼职中铁建设集团有限公司总部在哪
  • 网站的功能和作用是什么做警员编号网站
  • 东莞网站建设网站建设多少钱网站备案信息管理
  • 电子商务网站建设怎么做国外服务器做网站
  • 国外网站国内做二维码阿柳云wordpress
  • 域名解析网站打不开公司建一个网站多少费用
  • 五屏网站建设品牌wordpress的api
  • 如何建立一个网站卖货济源网站建设价格
  • 可以写代码的网站wordpress文章带描述的工具
  • 自己如何建一个网站网站的建设及维护报告
  • wordpress储存成都百度推广账户优化
  • 做网站的模版想自己做网站需要会什么软件
  • 服务器网站怎么用一元购物app
  • 如何仿做网站网站营销是什么
  • 网站推广方法渠道wordpress数据库忘记了
  • 北京商地网站建设公司网页制作培训价格
  • 网站的百度地图怎么做进入百度一下官网
  • 兰州网站开发企业网页认证怎么认证
  • 湛江建设工程交易中心网站wordpress 4.4.1 中文
  • 规划一个电子商务网站百度推广开户电话
  • 查找网站备案信息wordpress域名展示
  • 一个美工做网站好做吗二次开发源代码
  • 怎么用自己注册的域名做网站网站开发后需要交接哪些材料
  • 申请自己的网站同一虚拟主机 2个网站
  • 网站开发验收资料免费的网站推广方法
  • 站长工具综合查询ip工业设计创意网站
  • 公司网站网址注册和备案哪里找网站模板文件的名字
  • php网站的开发环境wordpress js代码