zoukankan      html  css  js  c++  java
  • Effective_STL 学习笔记(六) 警惕 C++ 最令人恼怒的解析

    声明一个函数 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 对象的函数

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

  • 相关阅读:
    UVa 12235 状压DP Help Bubu
    UVa 1407 树形背包 Caves
    UVa 11552 DP Fewest Flops
    webgl helloworld
    webgl 初识2
    laya3d 文件格式
    webgl 初识1
    HTTP消息头(HTTP headers)-常用的HTTP请求头与响应头
    gulp 定义依赖关系
    你真的了解内存泄露吗?
  • 原文地址:https://www.cnblogs.com/kidycharon/p/10003182.html
Copyright © 2011-2022 走看看