zoukankan      html  css  js  c++  java
  • 练习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都属于精确匹配

  • 相关阅读:
    实验二
    实验一
    个人简介
    第四次 博客作业
    第三次博客作业package com.fry; //导入java.util.Arrays; import java.util.Arrays; public class Demo1 { public static void main(String[]args){ //创建对象,对象名为hello Demo1 hello =new Demo1(); //调用方法并将返回值保存在变量中
    白盒
    单元测试
    个人简介
    第五次博客作业
    第三次博客作业
  • 原文地址:https://www.cnblogs.com/Dark-King/p/9494710.html
Copyright © 2011-2022 走看看