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

福州综合网站建设湖北住房和城乡建设厅官方网站

福州综合网站建设,湖北住房和城乡建设厅官方网站,ag电子游戏网站开发,国内知名展馆设计公司排名文章目录 代码准备测试演示注意事项成员函数类型申明测试演示总的打印输出 代码准备 头文件:Calc.h #pragma onceclass Calc { public:int add(int,int);//函数声明static int sub(int,int);//函数声明 public:int b;//定义了一个成员变量static int a;//声明了一个静态成员变… 文章目录 代码准备测试演示注意事项成员函数类型申明测试演示总的打印输出 代码准备 头文件:Calc.h #pragma onceclass Calc { public:int add(int,int);//函数声明static int sub(int,int);//函数声明 public:int b;//定义了一个成员变量static int a;//声明了一个静态成员变量注意这里不是定义静态成员变量的定义必须在类的定义的外部 }; //int Calc::a 10;//不要把静态成员变量的定义写到头文件里否则在其他多个源文件引入此头文件时会报定义重复 //非类中的普通函数的声明 void normal_fun(int k); 源文件 Calc.cpp #include Calc.h int Calc::a 0;//在源文件中定义静态成员变量并初始化 int Calc::add(int i, int j)//定义函数 { return i j; } int Calc::sub(int i, int j)//定义函数 {return i - j; }测试演示 测试代码: test.cpp #include iostream using namespace std; #include Calc.h//非类中的普通函数的定义 void normal_fun(int k) {cout __func__ endl; }//定义一个命名空间MyNs namespace MyNs {//声明一个普通函数void normal_fun_2(int k); } //命名空间内的函数的定义 void MyNs::normal_fun_2(int k) {cout __func__ endl; }int main(int argc, char* argv[]) {//打印Calc类成员函数的地址printf(add函数的地址:%p\n, Calc::add);//打印Calc类静态成员函数的地址printf(sub函数的地址:%p\n, Calc::sub);//打印Calc类静态成员变量的地址printf(变量a的地址:%p\n, Calc::a);//打印非类中的全局普通函数的地址printf(normal_fun_1函数地址:%p\n, normal_fun_1);//打印命名空间中的普通函数的地址printf(normal_fun_2函数地址:%p\n, MyNs::normal_fun_2); }注意事项 注意获取一个类中成员函数指针的语法要求很严格 1.必须有限定符例如add或者sub不对。即使在类Calc的作用域内也不行。 2.必须使用取地址符号例如直接写ClassName::add不行。虽然普通函数指针可以这样 所以必须要这样写ClassName::add。 3.不能使用括号例如(ClassName::add)不对但是经测试发现这样也是可以的。 4.普通函数可以直接用函数名当作函数地址 或者 命名空间里的函数通过NameSpace::normal_fun_2的方式前面不需要加。 成员函数类型申明 可以像普通函数一样采用typedef或者using 运算符将函数指针类型重命名这样更好看一些。普通函数指针的申明 void test() {int (Calc::*addFun)(int,int) Calc::add;//addFun就是成员函数add的函数指针Calc c; //.*的用法经由对象调用 即对象动态调用符号.*int ret (c.*addFun)(7, 6); cout __func__ ret ret endl; //13Calc* pc c; //-*的用法经由对象指针调用 即对象指针动态调用符号-*ret (pc-*addFun)(6,3); cout __func__ ret ret endl; //9 }void test1() {int (Calc:: *addFun)(int, int);//定义了一个Calc类下含有两个int型参数返回类型为int的 成员函数指针addFuntypedef int (Calc:: *Pmt)(int, int);//成员函数指针类型的别名为Pmt//using Pmt int (Calc::*)(int, int);//等价于上面的typedef定义。addFun Calc::add;Pmt pmt Calc::add;Calc c;int ret1 (c.*addFun)(6,5);cout __func__ ret1 ret1 endl;//11int ret2 (c.*pmt)(6, 6);cout __func__ ret2 ret2 endl;//12 }测试演示 int main(int argc, char* argv[]) {test();test1(); }总的打印输出
http://wiki.neutronadmin.com/news/195917/

相关文章:

  • 邯郸市网站建设企业建设网站公司哪家好
  • 手机百度屏蔽我网站关键词网站上传的视频播放卡
  • asp.net做电商网站设计做视频解析网站
  • 求职招聘网站开发网站排名优化如何做
  • 浦东新区苏州网站建设陇南地网站seo
  • 中国深圳航空公司官方网站个人网站 空间
  • 网站建设公司海报物业管理系统价格
  • 越南做彩票网站是违法的吗网站设计制作上海
  • 自己做装修效果的网站购物网站建立
  • 网站的备案号查询建设网站西丽
  • 网站图片多大合适大宗商品最新交易平台
  • 做dm素材网站无锡网站建设营销型
  • 点胶机 东莞网站建设企业开源建站系统
  • 网站开发竞品分析wordpress 检测redis
  • 做苗木生意上什么网站织梦多语言网站
  • 北京网站seo哪家公司好秦皇岛手机网站制作公司
  • 青岛网站制作服务网站上线流程
  • 最新互联网项目平台网站温岭建设规划局网站
  • 网站建设找导师蓝林产品推销
  • jsp网站开发工具及语言html5手机网站发布
  • 四川省住房与城乡建设厅网站聚美优品网站建设产品策略
  • 哪些网站有二维码买国外空间哪个网站好
  • 如何做自己网站平台如何找外链资源
  • 长春建设平台网站的公司吗世界上第二大互联网公司是
  • 科技公司的网站做整个网站静态页面多少钱
  • 宁波网站建设托管做pc端网站信息
  • 建设工程竞标网站php网站开发实训报告书
  • 网站设计首页济南软件开发工资一般多少
  • 陵水县建设局网站建筑设计专业大学排名
  • wordpress博客网站广西网站建设在线