• 练习6.52、6.53


    6.52:已知有如下声明,

      void manip(int , int);

      double dobj ;

    请指出下列调用中每个类型转换的等级(参见6.6.1节,第219页)。

    (a)manip( ' a ' , ' z ');  (b)manip(55.4 , dobj)

    Ans:a)实参是char类型,而函数形参是int类型,所以类型转换的等级是类型提升实现的匹配。

       b)实参是两个double类型的值,函数形参是int类型,所以类型转换的等级是算术类型转换实现的匹配。

    6.53:说明下列每组声明中的第二条语句会产生什么影响,并指出哪些不合法(如果有的话)。

    (a)int calc (int & ,int &);

        int calc (const int & ,const int &);

    (b)int calc(char * ,char *);

        int calc(const char * ,const char *);

    (c)int calc(char *, char*);

        int calc(char *const,char *const);

    Ans:a)第二条语句会与第一条语句构成重载函数,若实参是常量,则其会调用第二条语句,因为若形参是常量指针或者引用,那么取决于实参是否是常量而选择调用哪个函数,况且实参传递到形参的对象,会忽略掉顶层const。

       b)第二条语句会与第一条语句构成重载函数,与(a)一样。

       c)声明不合法。重复声明了,两条语句不能构成重载函数,实参传递到形参的对象,会忽略掉顶层const,实际上两个函数声明其实一样,在调用时会进行精确匹配:向实参添加顶层const或者删掉顶层const都属于精确匹配

  • 相关阅读:
    「转」xtrabackup新版详细说明
    微博MySQL优化之路--dockone微信群分享
    分享的好处
    DBA的技能图谱
    高效运维--数据库坐而论道活动
    MySQL的诡异同步问题-重复执行一条relay-log
    把信送给加西亚读后感
    一次由于字符集问题引发的MySQL主从同步不一致问题追查
    nginx解决浏览器跨域问题
    kubernetes之pod调度
  • 原文地址:https://www.cnblogs.com/Dark-King/p/9494710.html
Copyright © 2020-2023  润新知