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源码,发现上次没有看明白的一个函数忽然就豁然开朗了,于是赶紧写下了这 ...
随机推荐
- Smarty模板引擎原理概述
smarty(模板引擎,模板技术) 使用smarty主要是为了实现逻辑和外在内容的分离: 特点: 1.速度快(因为第二次执行的时候使用第一次执行时生成的编译文件) 2.缓存技术(正是因为缓存技术,使得 ...
- 【译】OWIN: Open Web Server Interface for .NET
主要是使用 OAuth 时,它运行在 OWIN 上,然后又出了若干问题,总之,发现对 IIS.ASP.NET 和 OWIN 理解一塌糊涂. 后面看到 OWIN: Open Web Server Int ...
- G1 垃圾回收器简单调优
G1: Garbage First 低延迟.服务侧分代垃圾回收器. 详细介绍参见:JVM之G1收集器,这里不再赘述. 关于调优目标:延迟.吞吐量 一.延迟,单次的延迟 单次的延迟关系到服务的响应时延, ...
- 国际化之fmt标签
1. 什么是国际化和本地化: I. 本地化:一个软件在某个国家或地区使用时,采用该国家或地区的语言,数字,货币,日期等习惯.II. 国际化:软件开发时,让它能支持多个国家和地区的本地化应用.使得应用软 ...
- excel操作数据实用技能
写代码写习惯了,在做数据预处理时也总是习惯性地用python.pandas来做处理,但其实有时候根本不需要写代码,用excel也能达到目的,甚至比写代码快很多,写代码要半天,excel只要几秒钟.下面 ...
- Burpsuite代理socks流量
一 设置sock代理 二 设置浏览器代理 三 设置burpsuite代理 四 浏览器访问验证 总结:增加取证难度,隐藏你自己ip,别光着屁股跑了O-O!
- centos6.4中文输入法
在虚拟机中装了centos6.4之后,一直使用命令行,没有用到编辑器编辑中文或者浏览器中文搜索,所以没有注意到里边中文输入的重要性.在网上有看到说如果用的是中文版本应该有自带的中文输入法,然后用快捷键 ...
- 居然还有人这样解说mybatis运行原理
目录 Mybatis基本认识 动态代理 JDK实现 CGLIB动态代理 总结 反射 Configuration对象作用 映射器结构 sqlsession执行流程(源码跟踪) Executor Stat ...
- Java实现 LeetCode 698 划分为k个相等的子集(递归)
698. 划分为k个相等的子集 给定一个整数数组 nums 和一个正整数 k,找出是否有可能把这个数组分成 k 个非空子集,其总和都相等. 示例 1: 输入: nums = [4, 3, 2, 3, ...
- Java实现蓝桥杯VIP算法训练 奇变的字符串
试题 算法训练 奇变的字符串 资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述 将一个字符串的奇数位(首位为第0位)取出,将其顺序弄反,再放回原字符串的原位置上. 如字符串" ...