/*ca70a_c++_重载函数_实参类型转换
转换等级,详见P290

编译选择哪个函数版本呢?
1.精确匹配
2.通过类型提升
3.通过标准转换
4.通过类类型转换
参数匹配和枚举类型
重载和const形参

void f(int *p) { cout << "f(int *p)" << endl; }
void f(const int *p) { cout << "f(const int *p)" << endl; }
//f(const int *p),*p指针指向const对象
//f(int *const p),*p const,表示指针是const,对象不是const.指向非const的对象
txwtech
*/

 /*ca70a_c++_重载函数_实参类型转换
转换等级,详见P290
1.精确匹配
2.通过类型提升
3.通过标准转换
4.通过类类型转换
参数匹配和枚举类型
重载和const形参 void f(int *p) { cout << "f(int *p)" << endl; }
void f(const int *p) { cout << "f(const int *p)" << endl; }
//f(const int *p),*p指针指向const对象
//f(int *const p),*p const,表示指针是const,对象不是const.指向非const的对象
txwtech
*/ #include <iostream>
using namespace std; class Account
{
public:
Account() {}
Account(int x) :num(x) {}//构造函数,num=x;
public:
int num; };
enum Tokens
{
INLINE=,
VIRTUAL=
};
void lookup(Account &x) { cout << "lookup(Account &x)" << endl; }
void lookup(const Account& y) { cout << "lookup(const Account& y)" << endl; }; void ff(Tokens t) { cout << "ff(Tokens t)" << endl; }
void ff(int x) { cout << "ff(int x):"<<x << endl; }
void ff(short y) { cout << "ff(short y)" << endl; }
//void manip(long x) { cout << "manip(long x)" << endl; }//long与float平级,产生了二义性。
void manip(float y) { cout << "manip(float y)" << endl; }
void newf(unsigned char x) { cout << "newf(unsigned char x) " << endl; }
void newf(int y) { cout << "newf(int y) " << endl; } void f(int *p) { cout << "f(int *p)" << endl; }
void f(const int *p) { cout << "f(const int *p)" << endl; }
//f(const int *p),*p指针指向const对象
//f(int *const p),*p const,表示指针是const,对象不是const.指向非const的对象
//f(int *p)与f(int *const p)是一个意思,不允许都出现。
int main()
{
ff('a');//char优先转换为int,int级别高,a转int就是97
manip(3.14);//long与float平级,产生了二义性。
ff();//128与int是精确匹配。
//调用枚举
Tokens ourTok = INLINE;
ff(ourTok);//调用枚举
//枚举成员调用
ff(INLINE);//也可以 unsigned char uc = ;
newf(VIRTUAL);//调用newf(int y),枚举成员是int类型的
newf(uc); const Account a();
Account b;
lookup(a);//调用lookup(const Account& y)
lookup(b);//调用lookup(Account &x) int m = , n = ;
int *p = &m;
const int *p2 = &n;
f(p);
f(p2);
return ;
}

ca70a_c++_重载函数_实参类型转换的更多相关文章

  1. day16_函数作用域_匿名函数_函数式编程_map_reduce_filter_(部分)内置函数

    20180729    补充部分代码 20180727    上传代码 #!/usr/bin/env python # -*- coding:utf-8 -*- # ***************** ...

  2. 零基础逆向工程25_C++_02_类的成员权限_虚函数_模板

    1 类的成员权限 1.1 小结: 1.对外提供的函数或者变量,发布成public的 但不能随意改动. 2.可能会变动的函数或者变量,定义成private的 这样编译器会在使用的时候做检测. 3.只有结 ...

  3. Oracle_视图_索引_plsql_游标_存储过程_存储函数_触发器

    -- 感觉有用点个赞呗^v^ select * from emp; drop view persin_vw;--删除视图 create table emp as select * from scott ...

  4. jQuery源代码学习笔记_工具函数_noop/error/now/trim

    jQuery源代码学习笔记_工具函数_noop/error/now/trim jquery提供了一系列的工具函数,用于支持其运行,今天主要分析noop/error/now/trim这4个函数: 1.n ...

  5. ca71a_c++_指向函数的指针_通过指针调用函数txwtech

    /*ca71a_c++_指向函数的指针_通过指针调用函数用typedef简化函数指针的定义简化前: bool(*pf)(const string&, const string &); ...

  6. C++篇:第四章_函数_知识点大全

    C++篇为本人学C++时所做笔记(特别是疑难杂点),全是硬货,虽然看着枯燥但会让你收益颇丰,可用作学习C++的一大利器 五.函数 (一)函数使用规则 函数的定义不能嵌套但调用可以嵌套 在函数调用时,如 ...

  7. Python-老男孩-01_基础_文件IO_函数_yield_三元_常用内置函数_反射_random_md5_序列化_正则表达式_time

    Python2.7 缩进统一: 约定  常量 大写 , 变量  小写 判断一个变量在内存中的地址,也能看出是不是一个值 id()函数 >>> x = 'abc' >>&g ...

  8. 理解Underscore中的_.template函数

    Underscore中提供了_.template函数实现模板引擎功能,它可以将JSON数据源中的数据对应的填充到提供的字符串中去,类似于服务端渲染的模板引擎.接下来看一下Underscore是如何实现 ...

  9. 理解Underscore中的_.bind函数

    最近一直忙于实习以及毕业设计的事情,所以上周阅读源码之后本周就一直没有进展.今天在写完开题报告之后又抽空看了一眼Underscore源码,发现上次没有看明白的一个函数忽然就豁然开朗了,于是赶紧写下了这 ...

随机推荐

  1. PIC单片机编译器自带的延时程序

    https://wenku.baidu.com/view/3c94e2934028915f814dc205.html

  2. This关键字练习

    Account: package com.aff.ex; public class Account { private int id;// 账号 private double balance;// 余 ...

  3. Beta冲刺 —— 6.1

    这个作业属于哪个课程 软件工程 这个作业要求在哪里 Beta冲刺 这个作业的目标 Beta冲刺 作业正文 正文 github链接 项目地址 其他参考文献 无 一.会议内容 1.讨论并解决每个人存在的问 ...

  4. Chisel3 - util - LockingArbiter

    https://mp.weixin.qq.com/s/5oAwH3scumARzPidRBfG2w     带锁多入单出仲裁器,输出会被锁定指定的时钟周期.   参考链接: https://githu ...

  5. JSON.parse() 的实现

    目录 1. JSON.parse() 2. 前置知识 2.1 JSON格式中的数据类型 2.2 转义字符的处理 2.2 判断对象是否相等 2.3 寻找匹配的字符串 2.4 基础的递归思想 3. 实现流 ...

  6. Nginx 笔记(四)nginx 原理与优化参数配置 与 nginx 搭建高可用集群

    个人博客网:https://wushaopei.github.io/    (你想要这里多有) 一.nginx 原理与优化参数配置 ​ ​ master-workers 的机制的好处 首先,对于每个 ...

  7. Java实现 LeetCode 594 最长和谐子序列(滑动窗口)

    594. 最长和谐子序列 和谐数组是指一个数组里元素的最大值和最小值之间的差别正好是1. 现在,给定一个整数数组,你需要在所有可能的子序列中找到最长的和谐子序列的长度. 示例 1: 输入: [1,3, ...

  8. Java实现 蓝桥杯 算法训练 数字游戏

    试题 算法训练 数字游戏 资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述 给定一个1-N的排列a[i],每次将相邻两个数相加,得到新序列,再对新序列重复这样的操作,显然每次得到的序列 ...

  9. Java实现 蓝桥杯VIP 算法提高 打水问题

    算法提高 打水问题 时间限制:1.0s 内存限制:512.0MB 问题描述 N个人要打水,有M个水龙头,第i个人打水所需时间为Ti,请安排一个合理的方案使得所有人的等待时间之和尽量小. 输入格式 第一 ...

  10. tensorflow2.0学习笔记第二章第一节

    2.1预备知识 # 条件判断tf.where(条件语句,真返回A,假返回B) import tensorflow as tf a = tf.constant([1,2,3,1,1]) b = tf.c ...