ca70a_c++_重载函数_实参类型转换
/*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++_重载函数_实参类型转换的更多相关文章
- day16_函数作用域_匿名函数_函数式编程_map_reduce_filter_(部分)内置函数
20180729 补充部分代码 20180727 上传代码 #!/usr/bin/env python # -*- coding:utf-8 -*- # ***************** ...
- 零基础逆向工程25_C++_02_类的成员权限_虚函数_模板
1 类的成员权限 1.1 小结: 1.对外提供的函数或者变量,发布成public的 但不能随意改动. 2.可能会变动的函数或者变量,定义成private的 这样编译器会在使用的时候做检测. 3.只有结 ...
- Oracle_视图_索引_plsql_游标_存储过程_存储函数_触发器
-- 感觉有用点个赞呗^v^ select * from emp; drop view persin_vw;--删除视图 create table emp as select * from scott ...
- jQuery源代码学习笔记_工具函数_noop/error/now/trim
jQuery源代码学习笔记_工具函数_noop/error/now/trim jquery提供了一系列的工具函数,用于支持其运行,今天主要分析noop/error/now/trim这4个函数: 1.n ...
- ca71a_c++_指向函数的指针_通过指针调用函数txwtech
/*ca71a_c++_指向函数的指针_通过指针调用函数用typedef简化函数指针的定义简化前: bool(*pf)(const string&, const string &); ...
- C++篇:第四章_函数_知识点大全
C++篇为本人学C++时所做笔记(特别是疑难杂点),全是硬货,虽然看着枯燥但会让你收益颇丰,可用作学习C++的一大利器 五.函数 (一)函数使用规则 函数的定义不能嵌套但调用可以嵌套 在函数调用时,如 ...
- Python-老男孩-01_基础_文件IO_函数_yield_三元_常用内置函数_反射_random_md5_序列化_正则表达式_time
Python2.7 缩进统一: 约定 常量 大写 , 变量 小写 判断一个变量在内存中的地址,也能看出是不是一个值 id()函数 >>> x = 'abc' >>&g ...
- 理解Underscore中的_.template函数
Underscore中提供了_.template函数实现模板引擎功能,它可以将JSON数据源中的数据对应的填充到提供的字符串中去,类似于服务端渲染的模板引擎.接下来看一下Underscore是如何实现 ...
- 理解Underscore中的_.bind函数
最近一直忙于实习以及毕业设计的事情,所以上周阅读源码之后本周就一直没有进展.今天在写完开题报告之后又抽空看了一眼Underscore源码,发现上次没有看明白的一个函数忽然就豁然开朗了,于是赶紧写下了这 ...
随机推荐
- Android系统签名简介
apk的签名,简单说开发者可以通过签名 对应用进行标识和更新.包名在一个设备上是唯一的,这样可以避免被相同包名应用随意覆盖安装.这是一个非常重要的安全功能.系统中的签名文件,也是对系统中应用进行签名, ...
- String类练习
1.模拟一个trim方法,去除字符串两端的空格 2.将一个字符串进行反转.将字符串中指定部分进行反转 3.获取一个字符串在另一个字符串中出现的次数 4.获取两个字符串中最大相同子串 5.对字符串中字符 ...
- PHP常量和数据类型
引言 先用一个题来作为开端:PHP字符串的三种定义方式是什么?有什么区别? 它们分别是单引号'',双引号"",newdoc和heredoc. 区别是:单引号不能解析变量,不能解析转 ...
- Rocket - interrupts - NullIntSource
https://mp.weixin.qq.com/s/Fn3u2OSLAzPDrlZTiLfikg 简单介绍NullIntSource的实现. 1. 简单介绍 NullIntSource实现一个不会发 ...
- 重学 Java 设计模式:实战适配器模式
作者:小傅哥 博客:https://bugstack.cn 沉淀.分享.成长,让自己和他人都能有所收获! 一.前言 擦屁屁纸80%的面积都是保护手的! 工作到3年左右很大一部分程序员都想提升自己的技术 ...
- LeetCode 73,为什么第一反应想到的解法很有可能是个坑?
本文始发于个人公众号:TechFlow,原创不易,求个关注 今天是LeetCode第42篇文章,我们来看看LeetCode第73题矩阵置零,set matrix zeroes. 这题的难度是Mediu ...
- Java实现 蓝桥杯 算法训练VIP 报数(暴力+数学)约瑟夫环问题
试题 算法训练 报数 问题描述 现有n个同学站成一圈,顺时针编号1至n.从1号同学开始顺时针1/2报数,报到1的同学留在原地,报到2的同学退出圆圈,直到只剩一名同学为止.问最后剩下的同学编号. 输入格 ...
- Java实现 LeetCode 334 递增的三元子序列
334. 递增的三元子序列 给定一个未排序的数组,判断这个数组中是否存在长度为 3 的递增子序列. 数学表达式如下: 如果存在这样的 i, j, k, 且满足 0 ≤ i < j < k ...
- Java实现 LeetCode 204 计数质数
204. 计数质数 统计所有小于非负整数 n 的质数的数量. 示例: 输入: 10 输出: 4 解释: 小于 10 的质数一共有 4 个, 它们是 2, 3, 5, 7 . class Solutio ...
- Java实现 LeetCode 138 复制带随机指针的链表
138. 复制带随机指针的链表 给定一个链表,每个节点包含一个额外增加的随机指针,该指针可以指向链表中的任何节点或空节点. 要求返回这个链表的 深拷贝. 我们用一个由 n 个节点组成的链表来表示输入/ ...