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

福安网站设计/南昌seo报价

福安网站设计,南昌seo报价,有哪些做农产品的网站,网站设计的目的指针代表内存中地址标识符,变量,数组都是存储内存中的数据。所以可以获得它们的地址,用指针来表示这块内存。 如图输出内存中的地址。 对于一个函数来说,也是内存中存储这段数据,所以我们也可以获取函数的地址。 函数…

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

如图输出内存中的地址。

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

函数指针的声明方式

 

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

#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.lryc.cn/news/577730.html

相关文章:

  • 投资公司网站模板/网络营销名词解释答案
  • 微信游戏小程序代理/天津seo外包平台
  • 网站公司建设网站/关键词规划师
  • 做网站拍幕布照是什么意思/aso应用商店优化原因
  • 怎么做水果机网站/银行营销技巧和营销方法
  • 商城网站开发报价方案/seo公司优化排名
  • 深圳市做网站/怎么写网站
  • 做暧日本视频观看网站/太原最新情况
  • 做网站zwnet/百度在线客服系统
  • div css快速做网站/seo搜索引擎优化实训
  • 门窗 东莞网站建设/百度的代理商有哪些
  • 石家庄网站建设成功案例/建网站模板
  • 手写代码网站/广州外贸推广
  • 网页设计毕业论文选题/百度关键词优化有效果吗
  • 做网站的投入/注册教育培训机构需要什么条件
  • 价格网日本/网站优化内容
  • 专业房地产网站建设/拉新推广一手接单平台
  • 一个网站的制作步骤/搜索网站关键词
  • 中国做外贸的网站有哪些/制作链接的app的软件
  • 网站制作交易流程/做网络推广工作怎么样
  • 对外贸营销型网站建设的几点建议/品牌策划公司排名
  • 锦州网站seo/推广app赚佣金
  • 免费咨询医院/seo网络推广是干嘛的
  • 中国都有哪些网站/商丘 峰少 seo博客
  • 怎么做自己的网站logo/快速刷排名的软件最好
  • 做导购网站 商品/推广方案策略怎么写
  • 郑州网站优化公司哪家好/济南网站seo
  • 360建站公司/百度如何搜索关键词
  • 虚拟机电脑网页版/哈尔滨seo推广优化
  • 企业电子商务网站建设和一般/青岛做网络推广的公司有哪些