首页 > 编程语言 > 详细

Effective_STL 学习笔记(六) 警惕 C++ 最令人恼怒的解析

时间:2018-11-22 19:32:00      阅读:124      评论:0      收藏:0      [点我收藏+]

 

声明一个函数 fun 带有一个 double 而且返回一个 int:

1   int fun( double d );   
2   int fun( double (d) );  // 同上,d 的参数左右括号是多余的
3   int fun( double );     // 同上,参数名被省略

声明一个函数 gun 带有一个参数,参数指向一个没有参数、返回 double 的函数指针:

1   int gun( double (*pf)() ); // 带有一个指向函数的指针作为参数
2   int gun( double pf() );   // 同上,pf 其实是一个指针
3   int gun( double () );    // 同上,参数名可以省略

 

Tip: C++ 里面的一条通用规则—— 几乎任何东西都可能被分析成函数声明

1   class Widge { ... };
2   Widge w();      // 并没有声明一个叫作 w 的 Widget,声明了一个返回 Widget 对象的函数

 

用括号包含一个实参声明是不合法的,但用括号包围一个函数调用的观点是合法的,可以帮助我们战胜解析

 

Effective_STL 学习笔记(六) 警惕 C++ 最令人恼怒的解析

原文:https://www.cnblogs.com/kidycharon/p/10003182.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!